Fix some drag-and-drop handling on Haiku

* lisp/term/haiku-win.el (haiku-drag-and-drop): Don't raise
frame for some types of drags.

* src/haikuselect.c (haiku_unwind_drag_message): Don't hide
tooltip here.
(Fhaiku_drag_message): Only clear grab and hide tooltip if the
drag was successful.
This commit is contained in:
Po Lu 2022-06-11 12:01:01 +00:00
parent ab63000b6a
commit 3675809696
2 changed files with 8 additions and 7 deletions

View file

@ -316,7 +316,6 @@ or a pair of markers) and turns it into a file system reference."
((posn-area (event-start event)))
((assoc "refs" string)
(with-selected-window window
(raise-frame)
(dolist (filename (cddr (assoc "refs" string)))
(dnd-handle-one-url window 'private
(concat "file:" filename)))))
@ -327,7 +326,6 @@ or a pair of markers) and turns it into a file system reference."
(dnd-handle-one-url window 'private bf)))))
((assoc "text/plain" string)
(with-selected-window window
(raise-frame)
(dolist (text (cddr (assoc "text/plain" string)))
(unless mouse-yank-at-point
(goto-char (posn-point (event-start event))))

View file

@ -755,9 +755,6 @@ haiku_unwind_drag_message (void *message)
{
haiku_dnd_frame = NULL;
BMessage_delete (message);
if (haiku_dnd_follow_tooltip)
Fx_hide_tip ();
}
DEFUN ("haiku-drag-message", Fhaiku_drag_message, Shaiku_drag_message,
@ -826,11 +823,17 @@ currently being displayed to move along with the mouse pointer. */)
process_pending_signals,
haiku_should_quit_drag);
FRAME_DISPLAY_INFO (f)->grabbed = 0;
/* Don't clear the mouse grab if the user decided to quit instead
of the drop finishing. */
if (rc)
quit ();
/* Now dismiss the tooltip, since the drop presumably succeeded. */
if (!NILP (follow_tooltip))
Fx_hide_tip ();
FRAME_DISPLAY_INFO (f)->grabbed = 0;
return unbind_to (idx, Qnil);
}