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



commit bebdab385878a533a4528a271f13745d7b3cee7d
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
    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 69574fa..00c3b07 100644
--- a/src/nautilus-view.c
+++ b/src/nautilus-view.c
@@ -2293,6 +2293,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);
                }
@@ -2314,9 +2319,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]