From 5a8fed0aadea172f2bcd8da40a6f4d378075f37d Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Wed, 29 Jul 2015 09:50:32 -0300 Subject: 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. --- src/nautilus-view.c | 8 +++++--- 1 file 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); } -- cgit v1.2.1