[gthumb] Use unity-control-center if in Unity



commit 38cf07ed5afc7904db4630902cc5518591973186
Author: Rober Ancell <robert ancell canonical com>
Date:   Wed Jan 15 15:27:18 2014 +1300

    Use unity-control-center if in Unity
    
    https://bugzilla.gnome.org/show_bug.cgi?id=722233

 extensions/desktop_background/actions.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)
---
diff --git a/extensions/desktop_background/actions.c b/extensions/desktop_background/actions.c
index ede9700..1f4b842 100644
--- a/extensions/desktop_background/actions.c
+++ b/extensions/desktop_background/actions.c
@@ -28,6 +28,7 @@
 
 
 #define DESKTOP_BACKGROUND_PROPERTIES_COMMAND "gnome-control-center background"
+#define DESKTOP_BACKGROUND_PROPERTIES_UNITY_COMMAND "unity-control-center appearance"
 #define DESKTOP_BACKGROUND_SCHEMA "org.gnome.desktop.background"
 #define DESKTOP_BACKGROUND_FILE_KEY "picture-uri"
 #define DESKTOP_BACKGROUND_STYLE_KEY "picture-options"
@@ -188,13 +189,21 @@ infobar_response_cb (GtkInfoBar *info_bar,
                     gpointer    user_data)
 {
        WallpaperData *wdata = user_data;
+       gchar         *path;
+       const gchar   *control_center_command;
        GError        *error = NULL;
 
        g_return_if_fail (GTH_IS_BROWSER (wdata->browser));
 
        switch (response_id) {
        case _RESPONSE_PREFERENCES:
-               if (! g_spawn_command_line_async (DESKTOP_BACKGROUND_PROPERTIES_COMMAND, &error)) {
+               path = g_find_program_in_path ("unity-control-center");
+               if (path && g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "Unity") == 0)
+                       control_center_command = DESKTOP_BACKGROUND_PROPERTIES_UNITY_COMMAND;
+               else
+                       control_center_command = DESKTOP_BACKGROUND_PROPERTIES_COMMAND;
+               g_free (path);
+               if (! g_spawn_command_line_async (control_center_command, &error)) {
                        _gtk_error_dialog_from_gerror_run (GTK_WINDOW (wdata->browser), _("Could not show the 
desktop background properties"), error);
                        g_clear_error (&error);
                }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]