summaryrefslogtreecommitdiff
path: root/src/keyboard.c
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2022-07-02 09:06:36 +0800
committerPo Lu <luangruo@yahoo.com>2022-07-02 09:06:36 +0800
commiteb6d74a26c64e6aa444f21b12a7ab9951a00bfa5 (patch)
tree728d93e2ab3145473698f02b2726a087feb52005 /src/keyboard.c
parent154634dcf0efb3e304b077ba532ae11ab8ed724d (diff)
downloademacs-eb6d74a26c64e6aa444f21b12a7ab9951a00bfa5.tar.gz
Return the correct action from the Lisp side of drag-and-drop
* lisp/x-dnd.el (x-dnd-handle-drag-n-drop-event): Select `window' when handling internal DND events. (x-dnd-handle-unsupported-drop): Return an appropriate action. * src/keyboard.c (kbd_buffer_get_event): * src/termhooks.h (enum event_kind): Delete `UNSUPPORTED_DROP_EVENT'. * src/xterm.c (x_dnd_send_unsupported_drop): Set flags instead of recording input event. (x_clear_dnd_monitors): Rename to `x_clear_dnd_variables'. Also clear unsupported drop data. (x_dnd_begin_drag_and_drop): Run unsupported drop function inline (and safely), and use its return value if it returned a symbol. (syms_of_xterm): Update doc string of `x-dnd-unsupported-drop-function'. * src/xterm.h: Update declarations.
Diffstat (limited to 'src/keyboard.c')
-rw-r--r--src/keyboard.c50
1 files changed, 0 insertions, 50 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index 4cac20eb4b7..bed8307b6f2 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -4036,56 +4036,6 @@ kbd_buffer_get_event (KBOARD **kbp,
}
break;
-#ifdef HAVE_X_WINDOWS
- case UNSUPPORTED_DROP_EVENT:
- {
- struct frame *f;
-
- kbd_fetch_ptr = next_kbd_event (event);
- input_pending = readable_events (0);
-
- /* This means this event was already handled in
- `x_dnd_begin_drag_and_drop'. */
- if (event->ie.modifiers < x_dnd_unsupported_event_level)
- break;
-
- f = XFRAME (event->ie.frame_or_window);
-
- if (!FRAME_LIVE_P (f))
- break;
-
- if (!NILP (Vx_dnd_unsupported_drop_function))
- {
- if (!NILP (call8 (Vx_dnd_unsupported_drop_function,
- XCAR (XCDR (event->ie.arg)), event->ie.x,
- event->ie.y, XCAR (XCDR (XCDR (event->ie.arg))),
- make_uint (event->ie.code),
- event->ie.frame_or_window,
- make_int (event->ie.timestamp),
- Fcopy_sequence (XCAR (event->ie.arg)))))
- break;
- }
-
- /* `x-dnd-unsupported-drop-function' could have deleted the
- event frame. */
- if (!FRAME_LIVE_P (f)
- /* This means `x-dnd-use-unsupported-drop' was nil when the
- event was generated. */
- || NILP (XCAR (XCDR (XCDR (XCDR (event->ie.arg))))))
- break;
-
- x_dnd_do_unsupported_drop (FRAME_DISPLAY_INFO (f),
- event->ie.frame_or_window,
- XCAR (event->ie.arg),
- XCAR (XCDR (event->ie.arg)),
- (Window) event->ie.code,
- XFIXNUM (event->ie.x),
- XFIXNUM (event->ie.y),
- event->ie.timestamp);
- break;
- }
-#endif
-
case MONITORS_CHANGED_EVENT:
{
kbd_fetch_ptr = next_kbd_event (event);