summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArmin Krezović <krezovic.armin@gmail.com>2017-08-27 21:04:14 +0200
committerJonas Ådahl <jadahl@gmail.com>2017-08-28 10:50:44 +0800
commit25fd9e005b9fa549988c731fab5b64d3cd3d2136 (patch)
treee2cb4c9dc8bffc60b1227ebd51409ec348d273b0
parent114bfc04ef3e26b6ec258b771171b3a3789076e5 (diff)
downloadmutter-25fd9e005b9fa549988c731fab5b64d3cd3d2136.tar.gz
Fix cursor size update on non-waylandwip/xwayland-on-demand
-rw-r--r--src/core/prefs.c15
-rw-r--r--src/x11/meta-x11-display-private.h4
-rw-r--r--src/x11/meta-x11-display.c8
3 files changed, 14 insertions, 13 deletions
diff --git a/src/core/prefs.c b/src/core/prefs.c
index f4db8c562..c88811500 100644
--- a/src/core/prefs.c
+++ b/src/core/prefs.c
@@ -36,6 +36,7 @@
#include <stdlib.h>
#include "keybindings-private.h"
#include "meta-accel-parse.h"
+#include "x11/meta-x11-display-private.h"
/* If you add a key, it needs updating in init() and in the gsettings
* notify listener and of course in the .schemas file.
@@ -137,9 +138,6 @@ static void bindings_changed (GSettings *settings,
gchar *key,
gpointer data);
-static void update_cursor_size_from_gtk (GtkSettings *settings,
- GParamSpec *pspec,
- gpointer data);
static void update_cursor_size (void);
static void queue_changed (MetaPreference pref);
@@ -156,7 +154,6 @@ static void do_override (char *key, char *schema);
static void init_bindings (void);
-
typedef struct
{
MetaPrefsChangedFunc func;
@@ -972,10 +969,6 @@ meta_prefs_init (void)
G_CALLBACK (wayland_settings_changed), NULL);
g_hash_table_insert (settings_schemas, g_strdup (SCHEMA_INTERFACE), settings);
- 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);
-
settings = g_settings_new (SCHEMA_INPUT_SOURCES);
g_signal_connect (settings, "changed::" KEY_XKB_OPTIONS,
G_CALLBACK (settings_changed), NULL);
@@ -1225,13 +1218,9 @@ update_cursor_size (void)
cursor_size =
g_settings_get_int (SETTINGS (SCHEMA_INTERFACE), "cursor-size");
}
- else
- {
- update_cursor_size_from_gtk (gtk_settings_get_default (), NULL, NULL);
- }
}
-static void
+void
update_cursor_size_from_gtk (GtkSettings *settings,
GParamSpec *pspec,
gpointer data)
diff --git a/src/x11/meta-x11-display-private.h b/src/x11/meta-x11-display-private.h
index 05019e8cf..215a4bc49 100644
--- a/src/x11/meta-x11-display-private.h
+++ b/src/x11/meta-x11-display-private.h
@@ -209,4 +209,8 @@ MetaLogicalMonitor *meta_x11_display_xinerama_index_to_logical_monitor (MetaX11D
void meta_x11_display_update_workspace_layout (MetaX11Display *x11_display);
void meta_x11_display_update_workspace_names (MetaX11Display *x11_display);
+void update_cursor_size_from_gtk (GtkSettings *settings,
+ GParamSpec *pspec,
+ gpointer data);
+
#endif /* META_X11_DISPLAY_PRIVATE_H */
diff --git a/src/x11/meta-x11-display.c b/src/x11/meta-x11-display.c
index 3815a4096..8e90e518c 100644
--- a/src/x11/meta-x11-display.c
+++ b/src/x11/meta-x11-display.c
@@ -1317,6 +1317,14 @@ meta_x11_display_new (MetaDisplay *display, GError **error)
set_x11_bell_is_audible (x11_display, meta_prefs_bell_is_audible ());
+ if (!meta_is_wayland_compositor ())
+ {
+ update_cursor_size_from_gtk (gtk_settings_get_default (), NULL, NULL);
+
+ g_signal_connect_object (gtk_settings_get_default (), "notify::gtk-cursor-theme-size",
+ G_CALLBACK (update_cursor_size_from_gtk), NULL, 0);
+ }
+
return x11_display;
}