[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 5181276: Stop using XI focus events on non-GTK builds
From: |
Po Lu |
Subject: |
master 5181276: Stop using XI focus events on non-GTK builds |
Date: |
Sun, 12 Dec 2021 20:19:03 -0500 (EST) |
branch: master
commit 5181276b4362b25cd91818bc0b4e6fbd985b5882
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Stop using XI focus events on non-GTK builds
* src/xfns.c (setup_xi_event_mask): Stop setting XI_FocusIn
and XI_FocusOut.
* src/xterm.c (x_detect_focus_change) <GenericEvent>: Don't
handle XI_FocusIn and XI_FocusOut events when not on GTK.
---
src/xfns.c | 2 ++
src/xterm.c | 26 +++++++++++++++-----------
2 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/src/xfns.c b/src/xfns.c
index 5eff9f5..b569482 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -2936,8 +2936,10 @@ setup_xi_event_mask (struct frame *f)
XISetMask (m, XI_Motion);
XISetMask (m, XI_Enter);
XISetMask (m, XI_Leave);
+#if 0
XISetMask (m, XI_FocusIn);
XISetMask (m, XI_FocusOut);
+#endif
XISelectEvents (FRAME_X_DISPLAY (f),
FRAME_X_WINDOW (f),
&mask, 1);
diff --git a/src/xterm.c b/src/xterm.c
index 9d60292..1f377f8 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -5144,19 +5144,23 @@ 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)
- && (((XIEnterEvent *) xi_event)->detail
- != XINotifyInferior)
- && !(focus_state & FOCUS_EXPLICIT))
- || xi_event->evtype == XI_FocusIn
- || xi_event->evtype == XI_FocusOut)))
+#ifdef USE_GTK
+ if (xi_event->evtype == XI_FocusIn
+ || xi_event->evtype == XI_FocusOut)
+ x_focus_changed ((xi_event->evtype == XI_FocusIn
+ ? FocusIn : FocusOut),
+ FOCUS_EXPLICIT,
+ dpyinfo, frame, bufp);
+ else
+#endif
+ if ((xi_event->evtype == XI_Enter
+ || xi_event->evtype == XI_Leave)
+ && (((XIEnterEvent *) xi_event)->detail
+ != XINotifyInferior)
+ && !(focus_state & FOCUS_EXPLICIT))
x_focus_changed ((xi_event->evtype == XI_Enter
- || xi_event->evtype == XI_FocusIn
? FocusIn : FocusOut),
- (xi_event->evtype == XI_Enter
- || xi_event->evtype == XI_Leave
- ? FOCUS_IMPLICIT : FOCUS_EXPLICIT),
+ FOCUS_IMPLICIT,
dpyinfo, frame, bufp);
break;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 5181276: Stop using XI focus events on non-GTK builds,
Po Lu <=