[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 5fe75feafc: Fix `x-mouse-click-focus-ignore-position' for odd coi
From: |
Po Lu |
Subject: |
master 5fe75feafc: Fix `x-mouse-click-focus-ignore-position' for odd coincidences across displays |
Date: |
Tue, 19 Apr 2022 06:51:57 -0400 (EDT) |
branch: master
commit 5fe75feafc706b16af2f1e47a77c8fe46efd348c
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Fix `x-mouse-click-focus-ignore-position' for odd coincidences across
displays
* src/xterm.c (handle_one_xevent): Save the display alongside
the next mouse click timeout.
(x_delete_display): Clear that display here if applicable.
(x_initialize): Likewise.
---
src/xterm.c | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/src/xterm.c b/src/xterm.c
index 3eecd5e204..03d5a503f8 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -756,6 +756,10 @@ static bool toolkit_scroll_bar_interaction;
static Time ignore_next_mouse_click_timeout;
+/* The display that ignore_next_mouse_click_timeout applies to. */
+
+static struct x_display_info *mouse_click_timeout_display;
+
/* Used locally within XTread_socket. */
static int x_noop_count;
@@ -15169,7 +15173,10 @@ handle_one_xevent (struct x_display_info *dpyinfo,
f = any;
if (f && x_mouse_click_focus_ignore_position)
- ignore_next_mouse_click_timeout = event->xmotion.time + 200;
+ {
+ ignore_next_mouse_click_timeout = event->xmotion.time + 200;
+ mouse_click_timeout_display = dpyinfo;
+ }
/* EnterNotify counts as mouse movement,
so update things that depend on mouse position. */
@@ -16046,7 +16053,8 @@ handle_one_xevent (struct x_display_info *dpyinfo,
&& event->xbutton.button < 9
&& f)
{
- if (ignore_next_mouse_click_timeout)
+ if (ignore_next_mouse_click_timeout
+ && dpyinfo == mouse_click_timeout_display)
{
if (event->type == ButtonPress
&& event->xbutton.time >
ignore_next_mouse_click_timeout)
@@ -16115,7 +16123,8 @@ handle_one_xevent (struct x_display_info *dpyinfo,
if (! popup_activated ())
#endif
{
- if (ignore_next_mouse_click_timeout)
+ if (ignore_next_mouse_click_timeout
+ && dpyinfo == mouse_click_timeout_display)
{
if (event->type == ButtonPress
&& event->xbutton.time >
ignore_next_mouse_click_timeout)
@@ -16412,7 +16421,10 @@ handle_one_xevent (struct x_display_info *dpyinfo,
f = any;
if (f && x_mouse_click_focus_ignore_position)
- ignore_next_mouse_click_timeout = xi_event->time + 200;
+ {
+ ignore_next_mouse_click_timeout = xev->time + 200;
+ mouse_click_timeout_display = dpyinfo;
+ }
/* EnterNotify counts as mouse movement,
so update things that depend on mouse position. */
@@ -23578,6 +23590,9 @@ x_delete_display (struct x_display_info *dpyinfo)
if (next_noop_dpyinfo == dpyinfo)
next_noop_dpyinfo = dpyinfo->next;
+ if (mouse_click_timeout_display == dpyinfo)
+ mouse_click_timeout_display = NULL;
+
if (x_display_list == dpyinfo)
x_display_list = dpyinfo->next;
else
@@ -23865,6 +23880,7 @@ x_initialize (void)
x_noop_count = 0;
any_help_event_p = false;
ignore_next_mouse_click_timeout = 0;
+ mouse_click_timeout_display = NULL;
#ifdef USE_GTK
current_count = -1;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 5fe75feafc: Fix `x-mouse-click-focus-ignore-position' for odd coincidences across displays,
Po Lu <=