aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2022-03-30 08:13:35 +0000
committerPo Lu2022-03-30 08:13:35 +0000
commit9f54cb5f8f0df79468546b9431a0fe72ee2f1a52 (patch)
treef67eadb4d1b0dfff03498225b3646bfce280fd96 /src
parent7a5f2b79e9d75e4fd67844bdb8325a32b011383d (diff)
downloademacs-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.cc3
-rw-r--r--src/haikuselect.c9
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. */)
787void 788void
788syms_of_haikuselect (void) 789syms_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.
793Otherwise, an error will be signalled if adding a file reference to a
794system 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");