- U_Do-not-ignore-leave-events.patch
* fixes xwayland issue#1397, issue#1395 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xwayland?expand=0&rev=34
This commit is contained in:
parent
c2484d7746
commit
135c2fa712
48
U_Do-not-ignore-leave-events.patch
Normal file
48
U_Do-not-ignore-leave-events.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
From bd39c17e2398f82910978ed55ac772c67d8f940a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||||
|
Date: Mon, 24 Oct 2022 09:24:01 +0200
|
||||||
|
Subject: [PATCH] xwayland/input: Do not ignore leave events
|
||||||
|
|
||||||
|
Commit 8a5f3ddb2 ("set tag on our surface") introduced the use of tags
|
||||||
|
to differentiate our own surfaces, and commit a1d14aa8c ("Clear the
|
||||||
|
"xwl-window" tag on unrealize") removed the tags before the surfaces are
|
||||||
|
actually destroyed.
|
||||||
|
|
||||||
|
Xwayland would then rely on these tags on the surface to decide whether
|
||||||
|
to ignore or to process the Wayland event in various places.
|
||||||
|
|
||||||
|
However, in doing so, it also checked for the tag on keyboard leave
|
||||||
|
events.
|
||||||
|
|
||||||
|
As a result, if the keyboard leave events is received after the X11
|
||||||
|
window is unrealized, keyboard_handle_leave() would not queue the
|
||||||
|
LeaveNotify events for the DIX to proceed, and the key repeat would
|
||||||
|
kick in and repeat the key event indefinitely.
|
||||||
|
|
||||||
|
To avoid the issue, process events regardless of the tag as before
|
||||||
|
in keyboard_handle_leave().
|
||||||
|
|
||||||
|
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||||
|
Fixes: 8a5f3ddb2 - "xwayland: set tag on our surface"
|
||||||
|
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1395
|
||||||
|
---
|
||||||
|
hw/xwayland/xwayland-input.c | 3 ---
|
||||||
|
1 file changed, 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c
|
||||||
|
index 240eb0139..9eda1ef71 100644
|
||||||
|
--- a/hw/xwayland/xwayland-input.c
|
||||||
|
+++ b/hw/xwayland/xwayland-input.c
|
||||||
|
@@ -1147,9 +1147,6 @@ keyboard_handle_leave(void *data, struct wl_keyboard *keyboard,
|
||||||
|
struct xwl_seat *xwl_seat = data;
|
||||||
|
uint32_t *k;
|
||||||
|
|
||||||
|
- if (surface != NULL && !is_surface_from_xwl_window(surface))
|
||||||
|
- return;
|
||||||
|
-
|
||||||
|
xwl_seat->xwl_screen->serial = serial;
|
||||||
|
|
||||||
|
wl_array_for_each(k, &xwl_seat->keys)
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
|
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Oct 24 13:50:22 UTC 2022 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
- U_Do-not-ignore-leave-events.patch
|
||||||
|
* fixes xwayland issue#1397, issue#1395
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Oct 20 11:50:17 UTC 2022 - Stefan Dirsch <sndirsch@suse.com>
|
Thu Oct 20 11:50:17 UTC 2022 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@ Group: System/X11/Servers/XF86_4
|
|||||||
Source0: %{url}/archive/individual/xserver/%{name}-%{version}.tar.xz
|
Source0: %{url}/archive/individual/xserver/%{name}-%{version}.tar.xz
|
||||||
Source1: %{url}/archive/individual/xserver/%{name}-%{version}.tar.xz.sig
|
Source1: %{url}/archive/individual/xserver/%{name}-%{version}.tar.xz.sig
|
||||||
Source2: xwayland.keyring
|
Source2: xwayland.keyring
|
||||||
|
Patch0: U_Do-not-ignore-leave-events.patch
|
||||||
BuildRequires: meson
|
BuildRequires: meson
|
||||||
BuildRequires: ninja
|
BuildRequires: ninja
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
|
Loading…
Reference in New Issue
Block a user