Fix XPutBackEvent() issues (#2161020)
This commit is contained in:
parent
732d5381a6
commit
349f1f152d
@ -0,0 +1,57 @@
|
||||
From 88399e01be679bfcc9a5e8922ffe2c47f0e56dee Mon Sep 17 00:00:00 2001
|
||||
From: Yuxuan Shui <yshuiv7@gmail.com>
|
||||
Date: Tue, 3 Jan 2023 15:09:28 +0000
|
||||
Subject: [PATCH libX11] Revert "Update XPutBackEvent() to support clients that
|
||||
put back unpadded events"
|
||||
|
||||
This reverts commit d6d6cba90215d323567fef13d6565756c9956f60.
|
||||
|
||||
The reverted commit intended to fix the problem where an unpadded X
|
||||
event struct is passed into XPutBackEvent, by creating a padded struct
|
||||
with _XEventToWire and _XWireToEvent. However, _XWireToEvent updates the
|
||||
last sequence number in Display, which may cause xlib to complain about
|
||||
lost sequence numbers.
|
||||
|
||||
IMO, the problem that commit tried to solve is a bug in the client
|
||||
library, and workaround it inside Xlib is bad practice, especially given
|
||||
the problem it caused. Plus, the offender cited in the original commit
|
||||
message, freeglut, has already fixed this problem.
|
||||
|
||||
Fixes: #176 #174
|
||||
|
||||
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
|
||||
---
|
||||
src/PutBEvent.c | 15 +--------------
|
||||
1 file changed, 1 insertion(+), 14 deletions(-)
|
||||
|
||||
diff --git a/src/PutBEvent.c b/src/PutBEvent.c
|
||||
index f7b74b31..0f9df342 100644
|
||||
--- a/src/PutBEvent.c
|
||||
+++ b/src/PutBEvent.c
|
||||
@@ -79,22 +79,9 @@ XPutBackEvent (
|
||||
register XEvent *event)
|
||||
{
|
||||
int ret;
|
||||
- xEvent wire = {0};
|
||||
- XEvent lib = {0};
|
||||
- Status (*fp)(Display *, XEvent *, xEvent *);
|
||||
- int type = event->type & 0177;
|
||||
|
||||
LockDisplay(dpy);
|
||||
- fp = dpy->wire_vec[type];
|
||||
- if (fp == NULL)
|
||||
- fp = _XEventToWire;
|
||||
- ret = (*fp)(dpy, event, &wire);
|
||||
- if (ret)
|
||||
- {
|
||||
- ret = (*dpy->event_vec[type])(dpy, &lib, &wire);
|
||||
- if (ret)
|
||||
- ret = _XPutBackEvent(dpy, &lib);
|
||||
- }
|
||||
+ ret = _XPutBackEvent(dpy, event);
|
||||
UnlockDisplay(dpy);
|
||||
return ret;
|
||||
}
|
||||
--
|
||||
2.39.0
|
||||
|
@ -5,7 +5,7 @@
|
||||
Summary: Core X11 protocol client library
|
||||
Name: libX11
|
||||
Version: 1.8.3
|
||||
Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist}
|
||||
Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist}
|
||||
License: MIT
|
||||
URL: http://www.x.org
|
||||
|
||||
@ -19,6 +19,7 @@ Source0: https://xorg.freedesktop.org/archive/individual/lib/%{name}-%{version}.
|
||||
|
||||
|
||||
Patch2: dont-forward-keycode-0.patch
|
||||
Patch3: 0001-Revert-Update-XPutBackEvent-to-support-clients-that-.patch
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: xorg-x11-util-macros >= 1.11
|
||||
@ -122,6 +123,9 @@ make %{?_smp_mflags} check
|
||||
%{_mandir}/man5/*.5*
|
||||
|
||||
%changelog
|
||||
* Mon Jan 16 2023 Peter Hutterer <peter.hutterer@redhat.com> - 1.8.3-2
|
||||
- Fix XPutBackEvent() issues (#2161020)
|
||||
|
||||
* Fri Jan 06 2023 Peter Hutterer <peter.hutterer@redhat.com> - 1.8.3-1
|
||||
- libX11 1.8.3
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user