summaryrefslogtreecommitdiff
path: root/libcaja-private/caja-program-choosing.c
diff options
context:
space:
mode:
Diffstat (limited to 'libcaja-private/caja-program-choosing.c')
-rw-r--r--libcaja-private/caja-program-choosing.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/libcaja-private/caja-program-choosing.c b/libcaja-private/caja-program-choosing.c
index bc9ee396..6971d2d9 100644
--- a/libcaja-private/caja-program-choosing.c
+++ b/libcaja-private/caja-program-choosing.c
@@ -322,7 +322,24 @@ caja_launch_application_from_command (GdkScreen *screen,
}
else
{
+#if GTK_CHECK_VERSION (3, 0, 0)
+ GdkAppLaunchContext *launch_context;
+ GAppInfo *app_info = NULL;
+ app_info = g_app_info_create_from_commandline (full_command,
+ NULL,
+ G_APP_INFO_CREATE_NONE,
+ NULL);
+ if (app_info != NULL)
+ {
+ launch_context = gdk_app_launch_context_new ();
+ gdk_app_launch_context_set_screen (launch_context, screen);
+ g_app_info_launch (app_info, NULL, G_APP_LAUNCH_CONTEXT (launch_context), NULL);
+ g_object_unref (launch_context);
+ g_object_unref (app_info);
+ }
+#else
gdk_spawn_command_line_on_screen (screen, full_command, NULL);
+#endif
}
g_free (full_command);
@@ -370,7 +387,24 @@ caja_launch_application_from_command_array (GdkScreen *screen,
}
else
{
+#if GTK_CHECK_VERSION (3, 0, 0)
+ GdkAppLaunchContext *launch_context;
+ GAppInfo *app_info = NULL;
+ app_info = g_app_info_create_from_commandline (full_command,
+ NULL,
+ G_APP_INFO_CREATE_NONE,
+ NULL);
+ if (app_info != NULL)
+ {
+ launch_context = gdk_app_launch_context_new ();
+ gdk_app_launch_context_set_screen (launch_context, screen);
+ g_app_info_launch (app_info, NULL, G_APP_LAUNCH_CONTEXT (launch_context), NULL);
+ g_object_unref (launch_context);
+ g_object_unref (app_info);
+ }
+#else
gdk_spawn_command_line_on_screen (screen, full_command, NULL);
+#endif
}
g_free (full_command);