From 8ccb52c2e8afd6c8b45cc581abf8a9d43da4daf3 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 24 Jan 2024 18:46:29 +0700 Subject: [PATCH] skip Gtk to avoid pointless deprecation warnings --- xpra/x11/bindings/keyboard.pyx | 11 +++++++++++ xpra/x11/server/core.py | 3 ++- xpra/x11/server/keyboard_config.py | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/xpra/x11/bindings/keyboard.pyx b/xpra/x11/bindings/keyboard.pyx index c4eaabe1ca..f414acce98 100644 --- a/xpra/x11/bindings/keyboard.pyx +++ b/xpra/x11/bindings/keyboard.pyx @@ -1140,3 +1140,14 @@ cdef class X11KeyboardBindingsInstance(X11CoreBindingsInstance): XQueryPointer(self.display, root_window, &root, &child, &root_x, &root_y, &win_x, &win_y, &mask) return root_x, root_y + + def query_mask(self): + self.context_check("query_mask") + cdef Window root_window = XDefaultRootWindow(self.display) + cdef Window root, child + cdef int root_x, root_y + cdef int win_x, win_y + cdef unsigned int mask + XQueryPointer(self.display, root_window, &root, &child, + &root_x, &root_y, &win_x, &win_y, &mask) + return mask diff --git a/xpra/x11/server/core.py b/xpra/x11/server/core.py index 4ff80d8588..c34b803d23 100644 --- a/xpra/x11/server/core.py +++ b/xpra/x11/server/core.py @@ -945,7 +945,8 @@ def do_process_mouse_common(self, proto, device_id: int, wid: int, pointer, prop mouselog("do_process_mouse_common%s", (proto, device_id, wid, pointer, props)) if self.readonly: return False - pos = self.root_window.get_pointer()[-3:-1] + with xsync: + pos = X11Keyboard.query_pointer() if (pointer and pos != pointer[:2]) or self.input_devices=="xi": with xswallow: self._move_pointer(device_id, wid, pointer, props) diff --git a/xpra/x11/server/keyboard_config.py b/xpra/x11/server/keyboard_config.py index 8913d25fcf..04e02cd471 100644 --- a/xpra/x11/server/keyboard_config.py +++ b/xpra/x11/server/keyboard_config.py @@ -575,7 +575,7 @@ def get_current_mask(self) -> list: root = get_default_root_window() if not root: return [] - current_mask = root.get_pointer()[-1] + current_mask = X11Keyboard.query_mask() return mask_to_names(current_mask, self.modifier_map) def make_keymask_match(self, modifier_list, ignored_modifier_keycode=None, ignored_modifier_keynames=None) -> None: