Fix frame focus on X Toolkit builds with XInput 2

* src/xterm.c (x_detect_focus_change): Allow focus_state to not
be FOCUS_EXPLICIT when handling FocusIn and FocusOut events.
This commit is contained in:
Po Lu 2021-12-12 14:00:09 +08:00
parent 95d7a794cc
commit eff1bb78bd

View file

@ -5144,9 +5144,13 @@ x_detect_focus_change (struct x_display_info *dpyinfo, struct frame *frame,
int focus_state
= focus_frame ? focus_frame->output_data.x->focus_state : 0;
if (!((xi_event->evtype == XI_Enter
|| xi_event->evtype == XI_Leave)
&& (focus_state & FOCUS_EXPLICIT)))
if (!((((xi_event->evtype == XI_Enter
|| xi_event->evtype == XI_Leave)
&& (((XIEnterEvent *) xi_event)->detail
!= XINotifyInferior)
&& (focus_state & FOCUS_EXPLICIT))
|| xi_event->evtype == XI_FocusIn
|| xi_event->evtype == XI_FocusOut)))
x_focus_changed ((xi_event->evtype == XI_Enter
|| xi_event->evtype == XI_FocusIn
? FocusIn : FocusOut),