diff options
author | Matthias Clasen <mclasen@redhat.com> | 2010-12-15 02:38:43 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2010-12-21 12:07:00 -0500 |
commit | ef85f112da84c0c2bc38020a97d546c906ed2cb3 (patch) | |
tree | d9020bbefb95374c8bfc1fc7895f7af3a82a3e26 /gtk/gtkprintoperation-unix.c | |
parent | 536a7c8abb15be9357566bc56c4542b9caec6a73 (diff) | |
download | gtk+-ef85f112da84c0c2bc38020a97d546c906ed2cb3.tar.gz |
Don't use gdk_spawn
Replace the sole use of gdk_spawn in GTK+ by GAppInfo.
Diffstat (limited to 'gtk/gtkprintoperation-unix.c')
-rw-r--r-- | gtk/gtkprintoperation-unix.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/gtk/gtkprintoperation-unix.c b/gtk/gtkprintoperation-unix.c index 3b620e1649..1e3643002b 100644 --- a/gtk/gtkprintoperation-unix.c +++ b/gtk/gtkprintoperation-unix.c @@ -201,8 +201,8 @@ _gtk_print_operation_platform_backend_launch_preview (GtkPrintOperation *op, GtkWindow *parent, const gchar *filename) { - gint argc; - gchar **argv; + GAppInfo *appinfo; + GAppLaunchContext *context; gchar *cmd; gchar *preview_cmd; GtkSettings *settings; @@ -276,7 +276,11 @@ _gtk_print_operation_platform_backend_launch_preview (GtkPrintOperation *op, quoted_filename = g_shell_quote (filename); quoted_settings_filename = g_shell_quote (settings_filename); cmd = shell_command_substitute_file (preview_cmd, quoted_filename, quoted_settings_filename, &filename_used, &settings_used); - g_shell_parse_argv (cmd, &argc, &argv, &error); + + appinfo = g_app_info_create_from_commandline (cmd, + "Print Preview", + G_APP_INFO_CREATE_NONE, + &error); g_free (preview_cmd); g_free (quoted_filename); @@ -286,9 +290,12 @@ _gtk_print_operation_platform_backend_launch_preview (GtkPrintOperation *op, if (error != NULL) goto out; - gdk_spawn_on_screen (screen, NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, &error); + context = gdk_display_get_app_launch_context (gdk_screen_get_display (screen)); + gdk_app_launch_context_set_screen (GDK_APP_LAUNCH_CONTEXT (context), screen); + g_app_info_launch (appinfo, NULL, context, &error); - g_strfreev (argv); + g_object_unref (context); + g_object_unref (appinfo); if (error != NULL) { @@ -311,9 +318,9 @@ _gtk_print_operation_platform_backend_launch_preview (GtkPrintOperation *op, else g_error_free (error); - filename_used = FALSE; + filename_used = FALSE; settings_used = FALSE; - } + } if (!filename_used) g_unlink (filename); @@ -323,7 +330,7 @@ _gtk_print_operation_platform_backend_launch_preview (GtkPrintOperation *op, if (fd > 0) close (fd); - + if (key_file) g_key_file_free (key_file); g_free (data); |