[Xfce4-commits] <xfdesktop:master> Update the wallpapers after user sets folder

Eric Koegel noreply at xfce.org
Sun Mar 2 14:36:02 CET 2014


Updating branch refs/heads/master
         to d3c13d6aab145d916d6288f013fa30b8703dacb8 (commit)
       from dfb8f2141ca627e25d226ff259e7fe78cbd27434 (commit)

commit d3c13d6aab145d916d6288f013fa30b8703dacb8
Author: Eric Koegel <eric.koegel at gmail.com>
Date:   Sun Mar 2 16:30:46 2014 +0300

    Update the wallpapers after user sets folder
    
    If the user changes to a different folder with the gtk file chooser
    button, it can no longer be set with gtk_file_chooser_set_current_folder.
    Now, while the button won't get updated due to this bug in GTK, at
    least the wallpapers will be current.

 settings/main.c |   25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/settings/main.c b/settings/main.c
index a79a112..3a3cd2e 100644
--- a/settings/main.c
+++ b/settings/main.c
@@ -1080,13 +1080,24 @@ cb_folder_selection_changed(GtkWidget *button,
 
     /* Check to see if the folder actually did change */
     if(g_strcmp0(filename, previous_filename) == 0) {
-        DBG("filename %s, previous_filename %s. Nothing changed",
-            filename == NULL ? "NULL" : filename,
-            previous_filename == NULL ? "NULL" : previous_filename);
+        const gchar *current_folder = xfdesktop_settings_get_backdrop_image(panel);
+        gchar *dirname;
 
-        g_free(filename);
-        g_free(previous_filename);
-        return;
+        dirname = g_path_get_dirname(current_folder);
+
+        /* workaround another gtk bug - if the user sets the file chooser
+         * button to something then it can't be changed with a set folder
+         * call anymore. */
+        if(g_strcmp0(filename, dirname) == 0) {
+            DBG("folder didn't change");
+            g_free(dirname);
+            g_free(filename);
+            g_free(previous_filename);
+            return;
+        } else {
+            g_free(filename);
+            filename = dirname;
+        }
     }
 
     TRACE("folder changed to: %s", filename);
@@ -1191,6 +1202,8 @@ xfdesktop_settings_update_iconview_folder(AppearancePanel *panel)
     current_folder = xfdesktop_settings_get_backdrop_image(panel);
     dirname = g_path_get_dirname(current_folder);
 
+    DBG("current_folder %s, dirname %s", current_folder, dirname);
+
     gtk_file_chooser_set_current_folder((GtkFileChooser*)panel->btn_folder, dirname);
 
     /* Workaround for a bug in GTK */


More information about the Xfce4-commits mailing list