Fix announcements of XDND mouse rectangles
* lisp/x-dnd.el (x-dnd-handle-xdnd): Use correct meaning of "2", which isn't well documented. * src/xterm.c (handle_one_xevent): Likewise. Also fix unpacking of mouse rects.
This commit is contained in:
parent
0463368a7b
commit
6230ed6d63
2 changed files with 14 additions and 9 deletions
|
@ -695,13 +695,13 @@ FORMAT is 32 (not used). MESSAGE is the data part of an XClientMessageEvent."
|
|||
(list-to-send
|
||||
(list (string-to-number
|
||||
(frame-parameter frame 'outer-window-id))
|
||||
(+ 2 accept) ;; 1 = accept, 0 = reject. 2 =
|
||||
;; "want position updates".
|
||||
(if dnd-indicate-insertion-point 0
|
||||
(x-dnd-get-drop-x-y frame window))
|
||||
(if dnd-indicate-insertion-point 0
|
||||
(x-dnd-get-drop-width-height
|
||||
frame window (eq accept 1)))
|
||||
;; 1 = accept, 0 = reject. 2 = "want position
|
||||
;; updates even for movement inside the given
|
||||
;; widget bounds".
|
||||
(+ (if dnd-indicate-insertion-point 2 0) accept)
|
||||
(x-dnd-get-drop-x-y frame window)
|
||||
(x-dnd-get-drop-width-height
|
||||
frame window (eq accept 1))
|
||||
;; The no-toolkit Emacs build can actually
|
||||
;; receive drops from programs that speak
|
||||
;; versions of XDND earlier than 3 (such as
|
||||
|
|
|
@ -16468,10 +16468,15 @@ handle_one_xevent (struct x_display_info *dpyinfo,
|
|||
if (x_dnd_last_protocol_version != -1
|
||||
&& x_dnd_in_progress
|
||||
&& target == x_dnd_last_seen_window
|
||||
&& event->xclient.data.l[1] & 2)
|
||||
/* The XDND documentation is not very clearly worded.
|
||||
But this should be the correct behavior, since
|
||||
"kDNDStatusSendHereFlag" in the reference
|
||||
implementation is 2, and means the mouse rect
|
||||
should be ignored. */
|
||||
&& !(event->xclient.data.l[1] & 2))
|
||||
{
|
||||
r1 = event->xclient.data.l[2];
|
||||
r2 = event->xclient.data.l[2];
|
||||
r2 = event->xclient.data.l[3];
|
||||
|
||||
x_dnd_mouse_rect_target = target;
|
||||
x_dnd_mouse_rect.x = (r1 & 0xffff0000) >> 16;
|
||||
|
|
Loading…
Add table
Reference in a new issue