mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-09 13:10:57 -08:00
Correctly set up XI key input mask on X Toolkit builds
* src/xfns.c (setup_xi_event_mask): Also set the key event mask on the outer window, which might also have the input focus. (x_window) [USE_X_TOOLKIT]: Set up XI event mask a bit later.
This commit is contained in:
parent
30d4cfc080
commit
6719a3ccab
1 changed files with 17 additions and 11 deletions
28
src/xfns.c
28
src/xfns.c
|
|
@ -2934,15 +2934,11 @@ setup_xi_event_mask (struct frame *f)
|
|||
|
||||
XISetMask (m, XI_ButtonPress);
|
||||
XISetMask (m, XI_ButtonRelease);
|
||||
XISetMask (m, XI_KeyPress);
|
||||
XISetMask (m, XI_KeyRelease);
|
||||
XISetMask (m, XI_Motion);
|
||||
XISetMask (m, XI_Enter);
|
||||
XISetMask (m, XI_Leave);
|
||||
#if 0
|
||||
XISetMask (m, XI_FocusIn);
|
||||
XISetMask (m, XI_FocusOut);
|
||||
#endif
|
||||
XISetMask (m, XI_KeyPress);
|
||||
XISetMask (m, XI_KeyRelease);
|
||||
XISelectEvents (FRAME_X_DISPLAY (f),
|
||||
FRAME_X_WINDOW (f),
|
||||
&mask, 1);
|
||||
|
|
@ -2950,6 +2946,16 @@ setup_xi_event_mask (struct frame *f)
|
|||
memset (m, 0, l);
|
||||
#endif /* !USE_GTK */
|
||||
|
||||
#ifdef USE_X_TOOLKIT
|
||||
XISetMask (m, XI_KeyPress);
|
||||
XISetMask (m, XI_KeyRelease);
|
||||
|
||||
XISelectEvents (FRAME_X_DISPLAY (f),
|
||||
FRAME_OUTER_WINDOW (f),
|
||||
&mask, 1);
|
||||
memset (m, 0, l);
|
||||
#endif
|
||||
|
||||
mask.deviceid = XIAllDevices;
|
||||
|
||||
XISetMask (m, XI_PropertyEvent);
|
||||
|
|
@ -3140,11 +3146,6 @@ x_window (struct frame *f, long window_prompting)
|
|||
class_hints.res_class = SSDATA (Vx_resource_class);
|
||||
XSetClassHint (FRAME_X_DISPLAY (f), XtWindow (shell_widget), &class_hints);
|
||||
|
||||
#ifdef HAVE_XINPUT2
|
||||
if (FRAME_DISPLAY_INFO (f)->supports_xi2)
|
||||
setup_xi_event_mask (f);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_X_I18N
|
||||
FRAME_XIC (f) = NULL;
|
||||
if (use_xim)
|
||||
|
|
@ -3232,6 +3233,11 @@ x_window (struct frame *f, long window_prompting)
|
|||
/* This is a no-op, except under Motif. Make sure main areas are
|
||||
set to something reasonable, in case we get an error later. */
|
||||
lw_set_main_areas (pane_widget, 0, frame_widget);
|
||||
|
||||
#ifdef HAVE_XINPUT2
|
||||
if (FRAME_DISPLAY_INFO (f)->supports_xi2)
|
||||
setup_xi_event_mask (f);
|
||||
#endif
|
||||
}
|
||||
|
||||
#else /* not USE_X_TOOLKIT */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue