diff options
author | Javier <dev.git@javispedro.com> | 2015-01-27 01:01:03 +0100 |
---|---|---|
committer | Javier <dev.git@javispedro.com> | 2015-01-27 01:01:03 +0100 |
commit | 71fc77dff0a28397f3a21e2f6cc729d66f478809 (patch) | |
tree | 9e9043df66f6cfd0f6c40d6d3d62ee3cd0d9cdff | |
parent | e651920ecdfd7e91afe75be1463aaf8efb474f4c (diff) | |
download | mdock-71fc77dff0a28397f3a21e2f6cc729d66f478809.tar.gz mdock-71fc77dff0a28397f3a21e2f6cc729d66f478809.zip |
Use GdkAppLaunchContext
-rw-r--r-- | libmdock/mdock-item.c | 14 |
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", |