emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master db74fd0a4d 2/2: Merge branch 'master' of git.savannah.gnu.org:/sr


From: Eli Zaretskii
Subject: master db74fd0a4d 2/2: Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
Date: Wed, 28 Sep 2022 08:38:40 -0400 (EDT)

branch: master
commit db74fd0a4dba7a7e7abff50501eb6f0961f2e4d6
Merge: 64c07c01c1 5f7d9a1a9f
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>

    Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
---
 src/xterm.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/src/xterm.c b/src/xterm.c
index d7ea63bb4f..409d39b27e 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -13584,6 +13584,13 @@ xi_compute_root_window_offset (struct frame *f, 
XIDeviceEvent *xev)
                                xev->event_x, xev->event_y);
 }
 
+static void
+xi_compute_root_window_offset_enter (struct frame *f, XIEnterEvent *enter)
+{
+  x_compute_root_window_offset (f, enter->root_x, enter->root_y,
+                               enter->event_x, enter->event_y);
+}
+
 #ifdef HAVE_XINPUT2_4
 
 static void
@@ -19495,6 +19502,16 @@ handle_one_xevent (struct x_display_info *dpyinfo,
 
       f = any;
 
+      if (f && event->xcrossing.window == FRAME_X_WINDOW (f))
+       x_compute_root_window_offset (f, event->xcrossing.x_root,
+                                     event->xcrossing.y_root,
+                                     event->xcrossing.x,
+                                     event->xcrossing.y);
+
+      /* The code below relies on the first several fields of
+        XCrossingEvent being laid out the same way as
+        XMotionEvent.  */
+
       if (f && x_mouse_click_focus_ignore_position)
        {
          ignore_next_mouse_click_timeout = (event->xmotion.time
@@ -19639,6 +19656,13 @@ handle_one_xevent (struct x_display_info *dpyinfo,
                    || EQ (track_mouse, Qdropping))
                   && gui_mouse_grabbed (dpyinfo)))
            do_help = -1;
+
+         if (event->xcrossing.window == FRAME_X_WINDOW (f))
+           x_compute_root_window_offset (f, event->xcrossing.x_root,
+                                         event->xcrossing.y_root,
+                                         event->xcrossing.x,
+                                         event->xcrossing.y);
+
         }
 #ifdef USE_GTK
       /* See comment in EnterNotify above */
@@ -21049,6 +21073,9 @@ handle_one_xevent (struct x_display_info *dpyinfo,
 
              f = any;
 
+             if (f && enter->event == FRAME_X_WINDOW (f))
+               xi_compute_root_window_offset_enter (f, enter);
+
              if (f && x_mouse_click_focus_ignore_position)
                {
                  ignore_next_mouse_click_timeout = (enter->time
@@ -21245,6 +21272,9 @@ handle_one_xevent (struct x_display_info *dpyinfo,
                            || EQ (track_mouse, Qdropping))
                           && gui_mouse_grabbed (dpyinfo)))
                    do_help = -1;
+
+                 if (f && leave->event == FRAME_X_WINDOW (f))
+                   xi_compute_root_window_offset_enter (f, leave);
                }
 #ifdef USE_GTK
              /* See comment in EnterNotify above */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]