mirror of https://github.com/encounter/SDL.git
x11: Revert "Fix keymap updating for X11 backend"
This reverts commit de6d290266
.
This patch had multiple issues, discussed in #5520.
This commit is contained in:
parent
b9fe6ba0e7
commit
49a2e4b0ea
|
@ -733,9 +733,9 @@ static void
|
||||||
X11_DispatchEvent(_THIS, XEvent *xevent)
|
X11_DispatchEvent(_THIS, XEvent *xevent)
|
||||||
{
|
{
|
||||||
SDL_VideoData *videodata = (SDL_VideoData *) _this->driverdata;
|
SDL_VideoData *videodata = (SDL_VideoData *) _this->driverdata;
|
||||||
XkbEvent* xkbEvent = (XkbEvent*) xevent;
|
|
||||||
Display *display;
|
Display *display;
|
||||||
SDL_WindowData *data;
|
SDL_WindowData *data;
|
||||||
|
XEvent xevent;
|
||||||
int orig_event_type;
|
int orig_event_type;
|
||||||
KeyCode orig_keycode;
|
KeyCode orig_keycode;
|
||||||
XClientMessageEvent m;
|
XClientMessageEvent m;
|
||||||
|
@ -744,6 +744,9 @@ X11_DispatchEvent(_THIS, XEvent *xevent)
|
||||||
SDL_assert(videodata != NULL);
|
SDL_assert(videodata != NULL);
|
||||||
display = videodata->display;
|
display = videodata->display;
|
||||||
|
|
||||||
|
SDL_zero(xevent); /* valgrind fix. --ryan. */
|
||||||
|
X11_XNextEvent(display, &xevent);
|
||||||
|
|
||||||
/* Save the original keycode for dead keys, which are filtered out by
|
/* Save the original keycode for dead keys, which are filtered out by
|
||||||
the XFilterEvent() call below.
|
the XFilterEvent() call below.
|
||||||
*/
|
*/
|
||||||
|
@ -823,8 +826,7 @@ X11_DispatchEvent(_THIS, XEvent *xevent)
|
||||||
if (SDL_GetKeyboardFocus() != NULL) {
|
if (SDL_GetKeyboardFocus() != NULL) {
|
||||||
X11_ReconcileKeyboardState(_this);
|
X11_ReconcileKeyboardState(_this);
|
||||||
}
|
}
|
||||||
} else if (xevent->type == MappingNotify ||
|
} else if (xevent.type == MappingNotify) {
|
||||||
(xevent->type == videodata->xkb_event && xkbEvent->any.xkb_type == XkbStateNotify)) {
|
|
||||||
/* Has the keyboard layout changed? */
|
/* Has the keyboard layout changed? */
|
||||||
const int request = xevent->xmapping.request;
|
const int request = xevent->xmapping.request;
|
||||||
|
|
||||||
|
|
|
@ -185,7 +185,6 @@ SDL_X11_SYM(XkbDescPtr,XkbGetMap,(Display* a,unsigned int b,unsigned int c),(a,b
|
||||||
SDL_X11_SYM(void,XkbFreeClientMap,(XkbDescPtr a,unsigned int b, Bool c),(a,b,c),)
|
SDL_X11_SYM(void,XkbFreeClientMap,(XkbDescPtr a,unsigned int b, Bool c),(a,b,c),)
|
||||||
SDL_X11_SYM(void,XkbFreeKeyboard,(XkbDescPtr a,unsigned int b, Bool c),(a,b,c),)
|
SDL_X11_SYM(void,XkbFreeKeyboard,(XkbDescPtr a,unsigned int b, Bool c),(a,b,c),)
|
||||||
SDL_X11_SYM(Bool,XkbSetDetectableAutoRepeat,(Display* a, Bool b, Bool* c),(a,b,c),return)
|
SDL_X11_SYM(Bool,XkbSetDetectableAutoRepeat,(Display* a, Bool b, Bool* c),(a,b,c),return)
|
||||||
SDL_X11_SYM(Bool,XkbSelectEvents,(Display* a, unsigned int b, unsigned int c, unsigned int d),(a,b,c,d),return)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if NeedWidePrototypes
|
#if NeedWidePrototypes
|
||||||
|
|
|
@ -678,8 +678,6 @@ X11_CreateWindow(_THIS, SDL_Window * window)
|
||||||
/* For _ICC_PROFILE. */
|
/* For _ICC_PROFILE. */
|
||||||
X11_XSelectInput(display, RootWindow(display, screen), PropertyChangeMask);
|
X11_XSelectInput(display, RootWindow(display, screen), PropertyChangeMask);
|
||||||
|
|
||||||
X11_XkbSelectEvents(display, XkbUseCoreKbd, XkbStateNotifyMask, XkbStateNotifyMask);
|
|
||||||
|
|
||||||
X11_XFlush(display);
|
X11_XFlush(display);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue