diff options
| author | Po Lu | 2022-03-25 13:41:30 +0000 |
|---|---|---|
| committer | Po Lu | 2022-03-25 13:41:30 +0000 |
| commit | 4dfd42014b50aadd82b425747fe65fa97df28caa (patch) | |
| tree | 083cd4a906024025b336b2c2c53323a7e764de67 /src/haikuselect.c | |
| parent | 8ba0f190642d20e8f9caa7472c12674c7ba65a69 (diff) | |
| download | emacs-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.c | 10 |
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 | ||
| 587 | DEFUN ("haiku-drag-message", Fhaiku_drag_message, Shaiku_drag_message, | 587 | DEFUN ("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 | ||
| 591 | MESSAGE an alist of strings, denoting message field names, to a list | 591 | MESSAGE 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 | |||
| 606 | system message. | 606 | system message. |
| 607 | 607 | ||
| 608 | FRAME is a window system frame that must be visible, from which the | 608 | FRAME is a window system frame that must be visible, from which the |
| 609 | drag will originate. */) | 609 | drag will originate. |
| 610 | (Lisp_Object frame, Lisp_Object message) | 610 | |
| 611 | ALLOW-SAME-FRAME, if nil or not specified, means that MESSAGE will be | ||
| 612 | ignored 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); |