From 16df1f4fae5414556e905ec0f1c1c565e17cb7ae Mon Sep 17 00:00:00 2001 From: Po Lu Date: Mon, 13 Jun 2022 12:49:12 +0800 Subject: [PATCH] Improve DND tooltip updating * src/xterm.c (x_dnd_update_tooltip_now): Add missing part of last change. (x_monitors_changed_cb, handle_one_xevent): Only update if a change in monitor configuration really happened. --- src/xterm.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/xterm.c b/src/xterm.c index 4bc4c53eea2..81b3b5cbeff 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -15335,7 +15335,7 @@ x_dnd_update_tooltip_now (void) if (!x_dnd_in_progress || !x_dnd_update_tooltip) return; - dpyinfo = FRAME_DISPLAY_INFO (XFRAME (x_dnd_frame)); + dpyinfo = FRAME_DISPLAY_INFO (x_dnd_frame); rc = XQueryPointer (dpyinfo->display, dpyinfo->root_window, @@ -15721,14 +15721,14 @@ x_monitors_changed_cb (GdkScreen *gscr, gpointer user_data) ie.arg = terminal; kbd_buffer_store_event (&ie); + + if (x_dnd_in_progress && x_dnd_update_tooltip) + x_dnd_monitors = current_monitors; + + x_dnd_update_tooltip_now (); } dpyinfo->last_monitor_attributes_list = current_monitors; - - if (x_dnd_in_progress && x_dnd_update_tooltip) - x_dnd_monitors = current_monitors; - - x_dnd_update_tooltip_now (); } #endif @@ -21548,7 +21548,8 @@ handle_one_xevent (struct x_display_info *dpyinfo, if (x_dnd_in_progress && x_dnd_update_tooltip) x_dnd_monitors = current_monitors; - x_dnd_update_tooltip_now (); + if (inev.ie.kind != NO_EVENT) + x_dnd_update_tooltip_now (); } #endif OTHER: