summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2015-07-29 09:50:32 -0300
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2015-07-31 12:43:35 -0300
commit5a8fed0aadea172f2bcd8da40a6f4d378075f37d (patch)
tree91e4f3bfb6503cbd4fd2ac3697021e368719b7a2
parent1f950dab54a67a2b1bac44694b35ebe2dd264e11 (diff)
downloadnautilus-5a8fed0aadea172f2bcd8da40a6f4d378075f37d.tar.gz
view: change show-hidden setting only when value differs
Commit 2e1ac98 introduced the new behavior of persistently storing the show-hidden setting whenever it changes. This, however, caused an update cycle where NautilusDirectory tracked the show-hidden change and invalidates the mime types of the files, sending the apropriate ::file-changed signals. When NautilusView receives the signals, it unconditionally updates the action states, which sets the show-hidden action again, causing another change on the setting and re-triggering the NautilusDirectory signals, which are detected by NautilusView and perpetuating the cycle. Fix that by only storing the show-hidden setting when it differs from the current one.
-rw-r--r--src/nautilus-view.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/nautilus-view.c b/src/nautilus-view.c
index 13871bc7a..53dddc27b 100644
--- a/src/nautilus-view.c
+++ b/src/nautilus-view.c
@@ -2264,6 +2264,11 @@ nautilus_view_set_show_hidden_files (NautilusView *view,
if (show_hidden != view->details->show_hidden_files) {
view->details->show_hidden_files = show_hidden;
+
+ g_settings_set_boolean (gtk_filechooser_preferences,
+ NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES,
+ show_hidden);
+
if (view->details->model != NULL) {
load_directory (view, view->details->model);
}
@@ -2285,9 +2290,6 @@ action_show_hidden_files (GSimpleAction *action,
nautilus_view_set_show_hidden_files (view, show_hidden);
- g_settings_set_boolean (gtk_filechooser_preferences,
- NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES,
- show_hidden);
g_simple_action_set_state (action, state);
}