diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/eom-window.c | 38 | 
1 files changed, 32 insertions, 6 deletions
| diff --git a/src/eom-window.c b/src/eom-window.c index 2ba22d4..bb8c6d9 100644 --- a/src/eom-window.c +++ b/src/eom-window.c @@ -2668,13 +2668,39 @@ static void  wallpaper_info_bar_response (GtkInfoBar *bar, gint response, EomWindow *window)  {  	if (response == GTK_RESPONSE_YES) { -		GdkScreen *screen; +		GAppInfo *app_info; +		GError *error = NULL; + +		app_info = g_app_info_create_from_commandline ("mate-appearance-properties --show-page=background", +							       "mate-appearance-properties", +							       G_APP_INFO_CREATE_NONE, +							       &error); + +		if (error != NULL) { +			g_warning ("%s%s", _("Error launching appearance preferences dialog: "), +				   error->message); +			g_error_free (error); +			error = NULL; +		} + +		if (app_info != NULL) { +			GdkAppLaunchContext *context; +			GdkDisplay *display; -		screen = gtk_widget_get_screen (GTK_WIDGET (window)); -		mate_gdk_spawn_command_line_on_screen (screen, -						  "mate-appearance-properties" -						  " --show-page=background", -						  NULL); +			display = gtk_widget_get_display (GTK_WIDGET (window)); +			context = gdk_display_get_app_launch_context (display); +			g_app_info_launch (app_info, NULL, G_APP_LAUNCH_CONTEXT (context), &error); + +			if (error != NULL) { +				g_warning ("%s%s", _("Error launching appearance preferences dialog: "), +					   error->message); +				g_error_free (error); +				error = NULL; +			} + +			g_object_unref (context); +			g_object_unref (app_info); +		}  	}  	/* Close message area on every response */ | 
