emacs-diffs
[Top][All Lists]
Advanced

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

master 47b8c3f0b9: Fix decoding of XdndStatus rectangles on 64-bit syste


From: Po Lu
Subject: master 47b8c3f0b9: Fix decoding of XdndStatus rectangles on 64-bit systems
Date: Wed, 1 Jun 2022 20:32:35 -0400 (EDT)

branch: master
commit 47b8c3f0b97b6e59f475c996bba3cbb7f2e7ddf2
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Fix decoding of XdndStatus rectangles on 64-bit systems
    
    * src/xterm.c (handle_one_xevent): Make data.l[2] and data.l[3]
    unsigned.
---
 src/xterm.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/xterm.c b/src/xterm.c
index 7234e7c758..33b61ba02a 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -15077,6 +15077,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
            && event->xclient.message_type == dpyinfo->Xatom_XdndStatus)
          {
            Window target;
+           unsigned long r1, r2;
 
            target = event->xclient.data.l[0];
 
@@ -15084,11 +15085,14 @@ handle_one_xevent (struct x_display_info *dpyinfo,
                && target == x_dnd_last_seen_window
                && event->xclient.data.l[1] & 2)
              {
+               r1 = event->xclient.data.l[2];
+               r2 = event->xclient.data.l[2];
+
                x_dnd_mouse_rect_target = target;
-               x_dnd_mouse_rect.x = (event->xclient.data.l[2] & 0xffff0000) >> 
16;
-               x_dnd_mouse_rect.y = (event->xclient.data.l[2] & 0xffff);
-               x_dnd_mouse_rect.width = (event->xclient.data.l[3] & 
0xffff0000) >> 16;
-               x_dnd_mouse_rect.height = (event->xclient.data.l[3] & 0xffff);
+               x_dnd_mouse_rect.x = (r1 & 0xffff0000) >> 16;
+               x_dnd_mouse_rect.y = (r1 & 0xffff);
+               x_dnd_mouse_rect.width = (r2 & 0xffff0000) >> 16;
+               x_dnd_mouse_rect.height = (r2 & 0xffff);
              }
            else
              x_dnd_mouse_rect_target = None;



reply via email to

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