1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-26 07:33:47 +00:00

Fix timestamps recorded in Motif DND top level leave messages

* src/xterm.c (xm_send_top_level_leave_message): Use X_SHRT_MAX
since Motif treats x and y as signed.
(handle_one_xevent): Use correct time for lmsg.timestamp sent in
response to entering the return-frame.
This commit is contained in:
Po Lu 2022-06-19 10:31:33 +08:00
parent 8b45e7c681
commit 3285901e9a

View File

@ -2454,8 +2454,13 @@ xm_send_top_level_leave_message (struct x_display_info *dpyinfo, Window source,
XM_DROP_SITE_NONE, x_dnd_motif_operations,
XM_DROP_ACTION_DROP_CANCEL);
mmsg.timestamp = dmsg->timestamp;
mmsg.x = 65535;
mmsg.y = 65535;
/* Use X_SHRT_MAX instead of the max value of uint16_t since
that will be interpreted as a plausible position by Motif,
and as such breaks if the drop target is beneath that
position. */
mmsg.x = X_SHRT_MAX;
mmsg.y = X_SHRT_MAX;
xm_send_drag_motion_message (dpyinfo, source, target, &mmsg);
}
@ -19757,7 +19762,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
XM_DRAG_REASON_TOP_LEVEL_LEAVE);
lmsg.byteorder = XM_BYTE_ORDER_CUR_FIRST;
lmsg.zero = 0;
lmsg.timestamp = event->xmotion.time;
lmsg.timestamp = xev->time;
lmsg.source_window = FRAME_X_WINDOW (x_dnd_frame);
if (x_dnd_motif_setup_p)