diff options
-rw-r--r-- | multiload/main.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/multiload/main.c b/multiload/main.c index 72edd44f..327a36b6 100644 --- a/multiload/main.c +++ b/multiload/main.c @@ -101,6 +101,9 @@ start_procman (MultiloadApplet *ma) GError *error = NULL; GDesktopAppInfo *appinfo; gchar *monitor; + GdkAppLaunchContext *launch_context; + GAppInfo *app_info; + GdkScreen *screen; g_return_if_fail (ma != NULL); @@ -108,6 +111,7 @@ start_procman (MultiloadApplet *ma) if (monitor == NULL) monitor = g_strdup ("mate-system-monitor.desktop"); + screen = gtk_widget_get_screen (GTK_WIDGET (ma->applet)); appinfo = g_desktop_app_info_new (monitor); if (appinfo) { GdkScreen *screen; @@ -120,9 +124,18 @@ start_procman (MultiloadApplet *ma) g_object_unref (appinfo); } else { - gdk_spawn_command_line_on_screen ( - gtk_widget_get_screen (GTK_WIDGET (ma->applet)), - "mate-system-monitor", &error); + app_info = g_app_info_create_from_commandline ("mate-system-monitor", + _("Start system-monitor"), + G_APP_INFO_CREATE_NONE, + &error); + + if (!error) { + 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), &error); + + g_object_unref (launch_context); + } } g_free (monitor); |