mirror of
https://github.com/kovidgoyal/kitty.git
synced 2026-08-27 03:42:49 +00:00
fix: send drag leave/enter events when crossing kitty window boundaries during DnD
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/6aeadc64-7167-4cdb-bafd-8b680cef5d2d Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
This commit is contained in:
parent
2e8d57c1b0
commit
66e667b096
1 changed files with 7 additions and 0 deletions
|
|
@ -801,6 +801,13 @@ drop_dest_callback(GLFWwindow *window, GLFWDropEvent *ev) {
|
|||
os_window->last_drag_event.x = (int)(ev->xpos * os_window->viewport_x_ratio);
|
||||
os_window->last_drag_event.y = (int)(ev->ypos * os_window->viewport_y_ratio);
|
||||
on_mouse_position_update(ev->xpos, ev->ypos);
|
||||
// Re-evaluate which kitty window is now under the cursor after the
|
||||
// position update, so that drag enter/leave events are sent to the
|
||||
// correct kitty window when the drag crosses a kitty window boundary
|
||||
// within the same OS window.
|
||||
wid = global_state.mouse_hover_in_window;
|
||||
w = wid ? window_for_window_id(wid) : NULL;
|
||||
is_client_drop = !is_kitty_ui_drag && wid && w && w->drop.wanted;
|
||||
global_state.drop_dest.allowed_ops = ev->operation.source_actions;
|
||||
if (is_client_drop) {
|
||||
if (!w->drop.initialized) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue