diff options
| author | Sunderland93 <[email protected]> | 2026-08-01 11:17:58 +0400 |
|---|---|---|
| committer | Luke from DC <[email protected]> | 2026-08-19 19:15:44 +0000 |
| commit | 537e98c4ca8dc78f25d796af12f7f3a25b070e9b (patch) | |
| tree | c55a8fc7ed9ce3f8178ce50eb4a16f2a4c16ce85 /plugins/common | |
| parent | 7a53cc78e1418f37593055fa8c7a1ce0cbd5643f (diff) | |
| download | mate-settings-daemon-537e98c4ca8dc78f25d796af12f7f3a25b070e9b.tar.bz2 mate-settings-daemon-537e98c4ca8dc78f25d796af12f7f3a25b070e9b.tar.xz | |
Initial Wayland support
Diffstat (limited to 'plugins/common')
| -rw-r--r-- | plugins/common/eggaccelerators.c | 10 | ||||
| -rw-r--r-- | plugins/common/msd-input-helper.c | 15 | ||||
| -rw-r--r-- | plugins/common/msd-keygrab.c | 19 | ||||
| -rw-r--r-- | plugins/common/msd-osd-window.c | 6 |
4 files changed, 43 insertions, 7 deletions
diff --git a/plugins/common/eggaccelerators.c b/plugins/common/eggaccelerators.c index 0f924d3..77f320b 100644 --- a/plugins/common/eggaccelerators.c +++ b/plugins/common/eggaccelerators.c @@ -23,7 +23,9 @@ #include <stdlib.h> #include <string.h> +#ifdef GDK_WINDOWING_X11 #include <gdk/gdkx.h> +#endif /* GDK_WINDOWING_X11 */ #include <gdk/gdkkeysyms.h> #include <gtk/gtk.h> @@ -566,6 +568,7 @@ static void reload_modmap (GdkKeymap *keymap, EggModmap *modmap) { +#ifdef GDK_WINDOWING_X11 XModifierKeymap *xmodmap; int map_size; int i; @@ -629,6 +632,11 @@ reload_modmap (GdkKeymap *keymap, g_free (keys); } + XFreeModifiermap (xmodmap); +#else + memset (modmap->mapping, 0, sizeof (modmap->mapping)); +#endif /* GDK_WINDOWING_X11 */ + /* Add in the not-really-virtual fixed entries */ modmap->mapping[EGG_MODMAP_ENTRY_SHIFT] |= EGG_VIRTUAL_SHIFT_MASK; modmap->mapping[EGG_MODMAP_ENTRY_CONTROL] |= EGG_VIRTUAL_CONTROL_MASK; @@ -638,8 +646,6 @@ reload_modmap (GdkKeymap *keymap, modmap->mapping[EGG_MODMAP_ENTRY_MOD3] |= EGG_VIRTUAL_MOD3_MASK; modmap->mapping[EGG_MODMAP_ENTRY_MOD4] |= EGG_VIRTUAL_MOD4_MASK; modmap->mapping[EGG_MODMAP_ENTRY_MOD5] |= EGG_VIRTUAL_MOD5_MASK; - - XFreeModifiermap (xmodmap); } const EggModmap* diff --git a/plugins/common/msd-input-helper.c b/plugins/common/msd-input-helper.c index 05fad76..b6ca524 100644 --- a/plugins/common/msd-input-helper.c +++ b/plugins/common/msd-input-helper.c @@ -22,7 +22,9 @@ #include "config.h" #include <gdk/gdk.h> +#ifdef GDK_WINDOWING_X11 #include <gdk/gdkx.h> +#endif /* GDK_WINDOWING_X11 */ #include <sys/types.h> #include <X11/Xatom.h> @@ -32,13 +34,20 @@ gboolean supports_xinput_devices (void) { +#ifdef GDK_WINDOWING_X11 gint op_code, event, error; + if (!GDK_IS_X11_DISPLAY (gdk_display_get_default ())) + return FALSE; + return XQueryExtension (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "XInputExtension", &op_code, &event, &error); +#else + return FALSE; +#endif /* GDK_WINDOWING_X11 */ } static gboolean @@ -78,6 +87,9 @@ device_is_touchpad (XDeviceInfo *deviceinfo) display = gdk_display_get_default (); + if (!GDK_IS_X11_DISPLAY (display)) + return NULL; + if (deviceinfo->type != XInternAtom (GDK_DISPLAY_XDISPLAY (display), XI_TOUCHPAD, True)) return NULL; @@ -103,6 +115,9 @@ touchpad_is_present (void) guint i; gboolean retval; + if (!GDK_IS_X11_DISPLAY (gdk_display_get_default ())) + return FALSE; + if (supports_xinput_devices () == FALSE) return TRUE; diff --git a/plugins/common/msd-keygrab.c b/plugins/common/msd-keygrab.c index 0ea0cc1..184aa21 100644 --- a/plugins/common/msd-keygrab.c +++ b/plugins/common/msd-keygrab.c @@ -24,7 +24,9 @@ #include "config.h" #include <gdk/gdk.h> +#ifdef GDK_WINDOWING_X11 #include <gdk/gdkx.h> +#endif /* GDK_WINDOWING_X11 */ #ifdef HAVE_X11_EXTENSIONS_XKB_H #include <X11/XKBlib.h> #include <X11/extensions/XKB.h> @@ -74,6 +76,10 @@ grab_key_real (guint keycode, gboolean grab, int mask) { +#ifdef GDK_WINDOWING_X11 + if (!GDK_IS_X11_DISPLAY (gdk_display_get_default ())) + return; + if (grab) { XGrabKey (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), keycode, @@ -88,6 +94,9 @@ grab_key_real (guint keycode, mask, GDK_WINDOW_XID (root)); } +#else + g_warning ("Key grabbing is not supported without X11"); +#endif /* GDK_WINDOWING_X11 */ } /* Grab the key. In order to ignore MSD_IGNORED_MODS we need to grab @@ -203,6 +212,7 @@ key_uses_keycode (const Key *key, guint keycode) return FALSE; } +#ifdef GDK_WINDOWING_X11 gboolean match_key (Key *key, XEvent *event) { @@ -215,11 +225,9 @@ match_key (Key *key, XEvent *event) setup_modifiers (); -#ifdef HAVE_X11_EXTENSIONS_XKB_H if (have_xkb (event->xkey.display)) group = XkbGroupForCoreState (event->xkey.state); else -#endif group = (event->xkey.state & GDK_KEY_Mode_switch) ? 1 : 0; /* Check if we find a keysym that matches our current state */ @@ -244,3 +252,10 @@ match_key (Key *key, XEvent *event) return (key->state == (event->xkey.state & msd_used_mods) && key_uses_keycode (key, event->xkey.keycode)); } +#else /* !GDK_WINDOWING_X11 */ +gboolean +match_key (Key *key, XEvent *event) +{ + return FALSE; +} +#endif /* GDK_WINDOWING_X11 */ diff --git a/plugins/common/msd-osd-window.c b/plugins/common/msd-osd-window.c index d241cfb..5ac99a4 100644 --- a/plugins/common/msd-osd-window.c +++ b/plugins/common/msd-osd-window.c @@ -36,7 +36,7 @@ #include <glib.h> #include <glib/gi18n.h> #include <gtk/gtk.h> -#include <gdk/gdkx.h> +#include <gdk/gdk.h> #include "msd-osd-window.h" @@ -455,8 +455,8 @@ msd_osd_window_init (MsdOsdWindow *window) gtk_style_context_add_class (style, "window-frame"); /* assume 110x110 on a 640x480 display and scale from there */ - scalew = WidthOfScreen (gdk_x11_screen_get_xscreen (screen)) / (640.0 * window->priv->scale_factor); - scaleh = HeightOfScreen (gdk_x11_screen_get_xscreen (screen)) / (480.0 * window->priv->scale_factor); + scalew = gdk_screen_get_width (screen) / (640.0 * window->priv->scale_factor); + scaleh = gdk_screen_get_height (screen) / (480.0 * window->priv->scale_factor); scale = MIN (scalew, scaleh); size = 110 * MAX (1, scale); |
