[nautilus/wip/gbsneto/cleanups: 3/5] view: change show-hidden setting only when value differs



commit 18b5039aa8bdb6f205ad1e6e334339c6c1f11e07
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Wed Jul 29 09:50:32 2015 -0300

    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 files changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/src/nautilus-view.c b/src/nautilus-view.c
index 2bd9fbb..580c159 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);
 }
 


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