[nautilus/wip/gbsneto/cleanups: 3/5] view: change show-hidden setting only when value differs
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus/wip/gbsneto/cleanups: 3/5] view: change show-hidden setting only when value differs
- Date: Fri, 31 Jul 2015 14:53:04 +0000 (UTC)
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]