(defvar x-command-line-resources)
(defvar haiku-initialized)
+(defvar haiku-signal-invalid-refs)
(defvar haiku-dnd-selection-value nil
"The local value of the special `XdndSelection' selection.")
"SKIP: real doc in xfns.c."
(unless haiku-dnd-selection-value
(error "No local value for XdndSelection"))
- (let ((message nil))
+ (let ((message nil)
+ (haiku-signal-invalid-refs nil))
(dolist (target targets)
(let ((selection-converter (cdr (assoc (intern target)
haiku-dnd-selection-converters))))
rq.window = this->Window ();
rq.time = system_time ();
- if (drag_msg && transit != B_EXITED_VIEW)
- return;
-
if (ToolTip ())
ToolTip ()->SetMouseRelativeLocation (BPoint (-(point.x - tt_absl_pos.x),
-(point.y - tt_absl_pos.y)));
case 'RREF':
CHECK_STRING (data);
- if (be_add_refs_data (message, SSDATA (name), SSDATA (data)))
+ if (be_add_refs_data (message, SSDATA (name), SSDATA (data))
+ && haiku_signal_invalid_refs)
signal_error ("Invalid file name", data);
break;
void
syms_of_haikuselect (void)
{
+ DEFVAR_BOOL ("haiku-signal-invalid-refs", haiku_signal_invalid_refs,
+ doc: /* If nil, silently ignore invalid file names in system messages.
+Otherwise, an error will be signalled if adding a file reference to a
+system message failed. */);
+ haiku_signal_invalid_refs = true;
+
DEFSYM (QSECONDARY, "SECONDARY");
DEFSYM (QCLIPBOARD, "CLIPBOARD");
DEFSYM (QSTRING, "STRING");