[mutter] window: Listen for pref changes



commit 497f9be61e46fa457a70797414a18ac0a26db745
Author: Florian MÃllner <fmuellner gnome org>
Date:   Sat Nov 26 01:52:24 2011 +0100

    window: Listen for pref changes
    
    The workspaces-only-on-primary preference changes how windows are
    displayed, so listen for pref changes and update the visibility
    accordingly.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=664853

 src/core/window.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/src/core/window.c b/src/core/window.c
index d9c1c13..8d62672 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -180,6 +180,20 @@ enum
 static guint window_signals[LAST_SIGNAL] = { 0 };
 
 static void
+prefs_changed_callback (MetaPreference pref,
+                        gpointer       data)
+{
+  MetaWindow *window = data;
+
+  if (pref != META_PREF_WORKSPACES_ONLY_ON_PRIMARY)
+    return;
+
+  meta_window_update_on_all_workspaces (window);
+
+  meta_window_queue (window, META_QUEUE_CALC_SHOWING);
+}
+
+static void
 meta_window_finalize (GObject *object)
 {
   MetaWindow *window = META_WINDOW (object);
@@ -195,6 +209,8 @@ meta_window_finalize (GObject *object)
 
   meta_icon_cache_free (&window->icon_cache);
 
+  meta_prefs_remove_listener (prefs_changed_callback, window);
+
   g_free (window->sm_client_id);
   g_free (window->wm_client_machine);
   g_free (window->startup_id);
@@ -475,6 +491,7 @@ meta_window_class_init (MetaWindowClass *klass)
 static void
 meta_window_init (MetaWindow *self)
 {
+  meta_prefs_add_listener (prefs_changed_callback, self);
 }
 
 #ifdef WITH_VERBOSE_MODE



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