summaryrefslogtreecommitdiff
path: root/gtk/gtkprintoperation-unix.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2010-12-15 02:38:43 -0500
committerMatthias Clasen <mclasen@redhat.com>2010-12-21 12:07:00 -0500
commitef85f112da84c0c2bc38020a97d546c906ed2cb3 (patch)
treed9020bbefb95374c8bfc1fc7895f7af3a82a3e26 /gtk/gtkprintoperation-unix.c
parent536a7c8abb15be9357566bc56c4542b9caec6a73 (diff)
downloadgtk+-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.c23
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);