summaryrefslogtreecommitdiff
path: root/plugins/common
diff options
context:
space:
mode:
authorSunderland93 <[email protected]>2026-08-01 11:17:58 +0400
committerLuke from DC <[email protected]>2026-08-19 19:15:44 +0000
commit537e98c4ca8dc78f25d796af12f7f3a25b070e9b (patch)
treec55a8fc7ed9ce3f8178ce50eb4a16f2a4c16ce85 /plugins/common
parent7a53cc78e1418f37593055fa8c7a1ce0cbd5643f (diff)
downloadmate-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.c10
-rw-r--r--plugins/common/msd-input-helper.c15
-rw-r--r--plugins/common/msd-keygrab.c19
-rw-r--r--plugins/common/msd-osd-window.c6
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);