]> git.eshelyaron.com Git - emacs.git/commit
Implement cross-program drag-and-drop on Haiku
authorPo Lu <luangruo@yahoo.com>
Thu, 17 Mar 2022 03:42:19 +0000 (03:42 +0000)
committerPo Lu <luangruo@yahoo.com>
Thu, 17 Mar 2022 03:42:19 +0000 (03:42 +0000)
commit00172ae0c8a3087578f6e91251f887f6b7b4f682
tree5ef294107d444a408a12af1000411b541145e1a9
parentc223e2aefcabc7ad29c4be186fc07825bbcce196
Implement cross-program drag-and-drop on Haiku

* doc/lispref/frames.texi (Drag and Drop): Fix documentation of
`x-begin-drag' to match actual function arity.
* lisp/term/haiku-win.el (haiku-dnd-selection-value): New
variable.
(haiku-dnd-selection-converters): New variable.
(haiku-dnd-convert-string): New function.
(gui-backend-get-selection, gui-backend-set-selection): Handle
XdndSelection specially.
(x-begin-drag): New function.

* src/haiku_select.cc (be_create_simple_message)
(be_add_message_data): New functions.
* src/haiku_support.cc (WAIT_FOR_RELEASE): New message type.
(class EmacsView, MouseUp): If waiting for release, reply and
drop event.
(be_drag_message, be_drag_message_thread_entry): New functions.
* src/haiku_support.h: Update prototypes.

* src/haikuselect.c (lisp_to_type_code, haiku_lisp_to_message)
(Fhaiku_drag_message): New functions.
(syms_of_haikuselect): Define new subr.

* src/haikuselect.h: Update prototypes.
doc/lispref/frames.texi
lisp/term/haiku-win.el
src/haiku_select.cc
src/haiku_support.cc
src/haiku_support.h
src/haikuselect.c
src/haikuselect.h