[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