aboutsummaryrefslogtreecommitdiffstats
path: root/src/haikuselect.c
diff options
context:
space:
mode:
authorPo Lu2022-03-25 13:41:30 +0000
committerPo Lu2022-03-25 13:41:30 +0000
commit4dfd42014b50aadd82b425747fe65fa97df28caa (patch)
tree083cd4a906024025b336b2c2c53323a7e764de67 /src/haikuselect.c
parent8ba0f190642d20e8f9caa7472c12674c7ba65a69 (diff)
downloademacs-4dfd42014b50aadd82b425747fe65fa97df28caa.tar.gz
emacs-4dfd42014b50aadd82b425747fe65fa97df28caa.zip
Implement new drag and drop parameter on Haiku
* lisp/term/haiku-win.el (x-begin-drag): Implement `allow-current-frame'. * src/haiku_support.cc (be_drag_message): New argument `allow_same_view'. * src/haiku_support.h: Update prototypes. * src/haikuselect.c (Fhaiku_drag_message): New parameter `allow-same-frame'.
Diffstat (limited to 'src/haikuselect.c')
-rw-r--r--src/haikuselect.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/haikuselect.c b/src/haikuselect.c
index 5540f467c0d..f1aa4f20d96 100644
--- a/src/haikuselect.c
+++ b/src/haikuselect.c
@@ -585,7 +585,7 @@ haiku_should_quit_drag (void)
585} 585}
586 586
587DEFUN ("haiku-drag-message", Fhaiku_drag_message, Shaiku_drag_message, 587DEFUN ("haiku-drag-message", Fhaiku_drag_message, Shaiku_drag_message,
588 2, 2, 0, 588 2, 3, 0,
589 doc: /* Begin dragging MESSAGE from FRAME. 589 doc: /* Begin dragging MESSAGE from FRAME.
590 590
591MESSAGE an alist of strings, denoting message field names, to a list 591MESSAGE an alist of strings, denoting message field names, to a list
@@ -606,8 +606,11 @@ associates to a 32-bit unsigned integer describing the type of the
606system message. 606system message.
607 607
608FRAME is a window system frame that must be visible, from which the 608FRAME is a window system frame that must be visible, from which the
609drag will originate. */) 609drag will originate.
610 (Lisp_Object frame, Lisp_Object message) 610
611ALLOW-SAME-FRAME, if nil or not specified, means that MESSAGE will be
612ignored if it is dropped on top of FRAME. */)
613 (Lisp_Object frame, Lisp_Object message, Lisp_Object allow_same_frame)
611{ 614{
612 specpdl_ref idx; 615 specpdl_ref idx;
613 void *be_message; 616 void *be_message;
@@ -625,6 +628,7 @@ drag will originate. */)
625 record_unwind_protect_ptr (BMessage_delete, be_message); 628 record_unwind_protect_ptr (BMessage_delete, be_message);
626 haiku_lisp_to_message (message, be_message); 629 haiku_lisp_to_message (message, be_message);
627 rc = be_drag_message (FRAME_HAIKU_VIEW (f), be_message, 630 rc = be_drag_message (FRAME_HAIKU_VIEW (f), be_message,
631 !NILP (allow_same_frame),
628 block_input, unblock_input, 632 block_input, unblock_input,
629 process_pending_signals, 633 process_pending_signals,
630 haiku_should_quit_drag); 634 haiku_should_quit_drag);