diff options
| author | Po Lu | 2022-03-30 08:13:35 +0000 |
|---|---|---|
| committer | Po Lu | 2022-03-30 08:13:35 +0000 |
| commit | 9f54cb5f8f0df79468546b9431a0fe72ee2f1a52 (patch) | |
| tree | f67eadb4d1b0dfff03498225b3646bfce280fd96 /src | |
| parent | 7a5f2b79e9d75e4fd67844bdb8325a32b011383d (diff) | |
| download | emacs-9f54cb5f8f0df79468546b9431a0fe72ee2f1a52.tar.gz emacs-9f54cb5f8f0df79468546b9431a0fe72ee2f1a52.zip | |
Prevent signals when dragging nonexistent files on Haiku
* lisp/term/haiku-win.el (x-begin-drag): Bind
`haiku-signal-invalid-refs' to nil.
* src/haiku_support.cc (MouseMoved): Send motion events while
dragging as well.
* src/haikuselect.c (haiku_lisp_to_message): Respect new
variable.
(syms_of_haikuselect): New variable `haiku-signal-invalid-refs'.
Diffstat (limited to 'src')
| -rw-r--r-- | src/haiku_support.cc | 3 | ||||
| -rw-r--r-- | src/haikuselect.c | 9 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/haiku_support.cc b/src/haiku_support.cc index 39df06e4366..dd27d6317c5 100644 --- a/src/haiku_support.cc +++ b/src/haiku_support.cc | |||
| @@ -1530,9 +1530,6 @@ public: | |||
| 1530 | rq.window = this->Window (); | 1530 | rq.window = this->Window (); |
| 1531 | rq.time = system_time (); | 1531 | rq.time = system_time (); |
| 1532 | 1532 | ||
| 1533 | if (drag_msg && transit != B_EXITED_VIEW) | ||
| 1534 | return; | ||
| 1535 | |||
| 1536 | if (ToolTip ()) | 1533 | if (ToolTip ()) |
| 1537 | ToolTip ()->SetMouseRelativeLocation (BPoint (-(point.x - tt_absl_pos.x), | 1534 | ToolTip ()->SetMouseRelativeLocation (BPoint (-(point.x - tt_absl_pos.x), |
| 1538 | -(point.y - tt_absl_pos.y))); | 1535 | -(point.y - tt_absl_pos.y))); |
diff --git a/src/haikuselect.c b/src/haikuselect.c index 38d4933948f..77dcff42a61 100644 --- a/src/haikuselect.c +++ b/src/haikuselect.c | |||
| @@ -520,7 +520,8 @@ haiku_lisp_to_message (Lisp_Object obj, void *message) | |||
| 520 | case 'RREF': | 520 | case 'RREF': |
| 521 | CHECK_STRING (data); | 521 | CHECK_STRING (data); |
| 522 | 522 | ||
| 523 | if (be_add_refs_data (message, SSDATA (name), SSDATA (data))) | 523 | if (be_add_refs_data (message, SSDATA (name), SSDATA (data)) |
| 524 | && haiku_signal_invalid_refs) | ||
| 524 | signal_error ("Invalid file name", data); | 525 | signal_error ("Invalid file name", data); |
| 525 | break; | 526 | break; |
| 526 | 527 | ||
| @@ -787,6 +788,12 @@ ignored if it is dropped on top of FRAME. */) | |||
| 787 | void | 788 | void |
| 788 | syms_of_haikuselect (void) | 789 | syms_of_haikuselect (void) |
| 789 | { | 790 | { |
| 791 | DEFVAR_BOOL ("haiku-signal-invalid-refs", haiku_signal_invalid_refs, | ||
| 792 | doc: /* If nil, silently ignore invalid file names in system messages. | ||
| 793 | Otherwise, an error will be signalled if adding a file reference to a | ||
| 794 | system message failed. */); | ||
| 795 | haiku_signal_invalid_refs = true; | ||
| 796 | |||
| 790 | DEFSYM (QSECONDARY, "SECONDARY"); | 797 | DEFSYM (QSECONDARY, "SECONDARY"); |
| 791 | DEFSYM (QCLIPBOARD, "CLIPBOARD"); | 798 | DEFSYM (QCLIPBOARD, "CLIPBOARD"); |
| 792 | DEFSYM (QSTRING, "STRING"); | 799 | DEFSYM (QSTRING, "STRING"); |