summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier <dev.git@javispedro.com>2015-01-27 01:01:03 +0100
committerJavier <dev.git@javispedro.com>2015-01-27 01:01:03 +0100
commit71fc77dff0a28397f3a21e2f6cc729d66f478809 (patch)
tree9e9043df66f6cfd0f6c40d6d3d62ee3cd0d9cdff
parente651920ecdfd7e91afe75be1463aaf8efb474f4c (diff)
downloadmdock-71fc77dff0a28397f3a21e2f6cc729d66f478809.tar.gz
mdock-71fc77dff0a28397f3a21e2f6cc729d66f478809.zip
Use GdkAppLaunchContext
-rw-r--r--libmdock/mdock-item.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/libmdock/mdock-item.c b/libmdock/mdock-item.c
index 150af74..68cfb80 100644
--- a/libmdock/mdock-item.c
+++ b/libmdock/mdock-item.c
@@ -323,14 +323,20 @@ void mdock_item_set_desktop_app_info(MDockItem *self, GDesktopAppInfo *app_info)
void mdock_item_launch_files(MDockItem *self, GList *files)
{
g_return_if_fail(self->priv->appinfo);
+ GAppInfo *appinfo = G_APP_INFO(self->priv->appinfo);
+ GdkAppLaunchContext *launch_context = gdk_app_launch_context_new();
GError *error = NULL;
- g_debug("Launching '%s'", g_app_info_get_commandline(G_APP_INFO(self->priv->appinfo)));
- if (!g_app_info_launch(G_APP_INFO(self->priv->appinfo), files, NULL, &error)) {
+ gdk_app_launch_context_set_display(launch_context, gtk_widget_get_display(GTK_WIDGET(self)));
+ gdk_app_launch_context_set_timestamp(launch_context, gtk_get_current_event_time());
+
+ g_debug("Launching '%s'", g_app_info_get_commandline(appinfo));
+
+ if (!g_app_info_launch(appinfo, files, G_APP_LAUNCH_CONTEXT(launch_context), &error)) {
GtkWidget *msg;
g_warning("Cannot launch '%s': %s",
- g_app_info_get_display_name(G_APP_INFO(self->priv->appinfo)),
+ g_app_info_get_display_name(appinfo),
error->message);
msg = gtk_message_dialog_new(GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(self))),
@@ -338,7 +344,7 @@ void mdock_item_launch_files(MDockItem *self, GList *files)
GTK_MESSAGE_WARNING,
GTK_BUTTONS_OK,
"Cannot launch '%s': %s",
- g_app_info_get_display_name(G_APP_INFO(self->priv->appinfo)),
+ g_app_info_get_display_name(appinfo),
error->message);
g_signal_connect_swapped(msg, "response",