[mutter/wip/xwayland-on-demand: 24/32] Don't use gtk_settings callback to set shell_shows_app_menu



commit 6ff46b5f646e78138390c0774443ff2721b2a4fd
Author: Armin Krezović <krezovic armin gmail com>
Date:   Sat Aug 26 22:43:57 2017 +0200

    Don't use gtk_settings callback to set shell_shows_app_menu
    
    GTK+ won't be initialized if X11 is not available
    
    Instead, when setting gtk-shell-shows-app-menu,
    meta_prefs_set_show_fallback_app_menu should be
    called as well.

 src/core/prefs.c |   43 +++++++++++++------------------------------
 src/meta/prefs.h |    2 ++
 2 files changed, 15 insertions(+), 30 deletions(-)
---
diff --git a/src/core/prefs.c b/src/core/prefs.c
index b6a8ab7..f4db8c5 100644
--- a/src/core/prefs.c
+++ b/src/core/prefs.c
@@ -137,10 +137,6 @@ static void bindings_changed (GSettings      *settings,
                               gchar          *key,
                               gpointer        data);
 
-static void shell_shows_app_menu_changed (GtkSettings *settings,
-                                          GParamSpec  *pspec,
-                                          gpointer     data);
-
 static void update_cursor_size_from_gtk (GtkSettings *settings,
                                          GParamSpec *pspec,
                                          gpointer data);
@@ -976,10 +972,6 @@ meta_prefs_init (void)
                       G_CALLBACK (wayland_settings_changed), NULL);
   g_hash_table_insert (settings_schemas, g_strdup (SCHEMA_INTERFACE), settings);
 
-  g_signal_connect (gtk_settings_get_default (),
-                    "notify::gtk-shell-shows-app-menu",
-                    G_CALLBACK (shell_shows_app_menu_changed), NULL);
-
   if (!meta_is_wayland_compositor ())
     g_signal_connect (gtk_settings_get_default (), "notify::gtk-cursor-theme-size",
                       G_CALLBACK (update_cursor_size_from_gtk), NULL);
@@ -1005,7 +997,6 @@ meta_prefs_init (void)
   handle_preference_init_int ();
 
   update_cursor_size ();
-  shell_shows_app_menu_changed (gtk_settings_get_default (), NULL, NULL);
 
   init_bindings ();
 }
@@ -1221,27 +1212,6 @@ bindings_changed (GSettings *settings,
 }
 
 static void
-shell_shows_app_menu_changed (GtkSettings *settings,
-                              GParamSpec *pspec,
-                              gpointer data)
-{
-  int shell_shows_app_menu = 1;
-  gboolean changed = FALSE;
-
-  g_object_get (settings,
-                "gtk-shell-shows-app-menu", &shell_shows_app_menu,
-                NULL);
-
-
-  changed = (show_fallback_app_menu == !!shell_shows_app_menu);
-
-  show_fallback_app_menu = !shell_shows_app_menu;
-
-  if (changed)
-    queue_changed (META_PREF_BUTTON_LAYOUT);
-}
-
-static void
 update_cursor_size (void)
 {
   if (meta_is_wayland_compositor ())
@@ -1345,6 +1315,19 @@ meta_prefs_get_show_fallback_app_menu (void)
   return show_fallback_app_menu;
 }
 
+void
+meta_prefs_set_show_fallback_app_menu (gboolean whether)
+{
+  gboolean changed = FALSE;
+
+  changed = (show_fallback_app_menu == !whether);
+
+  show_fallback_app_menu = whether;
+
+  if (changed)
+    queue_changed (META_PREF_BUTTON_LAYOUT);
+}
+
 const char*
 meta_prefs_get_cursor_theme (void)
 {
diff --git a/src/meta/prefs.h b/src/meta/prefs.h
index 378ef5d..b2618af 100644
--- a/src/meta/prefs.h
+++ b/src/meta/prefs.h
@@ -140,7 +140,9 @@ gboolean                    meta_prefs_get_gnome_animations   (void);
 gboolean                    meta_prefs_get_edge_tiling        (void);
 gboolean                    meta_prefs_get_auto_maximize      (void);
 gboolean                    meta_prefs_get_center_new_windows (void);
+
 gboolean                    meta_prefs_get_show_fallback_app_menu (void);
+void                        meta_prefs_set_show_fallback_app_menu (gboolean whether);
 
 void                        meta_prefs_get_button_layout (MetaButtonLayout *button_layout);
 


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