From d215ddef811aaf7f8452d866e9c67df35f836bd2 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Wed, 23 Nov 2022 09:33:41 +0100 Subject: Fix for issue #412 for the Wayland backend The problem was that after a drag-n-drop within a window, text selection by shift+arrow key stopped working. Also, improves drag-n-drop within a window by leaving insertion point at end of dragged text. --- src/drivers/Wayland/fl_wayland_clipboard_dnd.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/drivers/Wayland/fl_wayland_clipboard_dnd.cxx b/src/drivers/Wayland/fl_wayland_clipboard_dnd.cxx index 7ede42570..bd09c44cb 100644 --- a/src/drivers/Wayland/fl_wayland_clipboard_dnd.cxx +++ b/src/drivers/Wayland/fl_wayland_clipboard_dnd.cxx @@ -115,7 +115,7 @@ static void data_source_handle_cancelled(void *data, struct wl_data_source *sour save_cursor = NULL; } if (fl_dnd_target_window) { - Fl::handle(FL_DND_LEAVE, fl_dnd_target_window); + Fl::handle(FL_RELEASE, fl_dnd_target_window); fl_dnd_target_window = 0; } Fl::pushed(0); @@ -454,7 +454,7 @@ static void data_device_handle_motion(void *data, struct wl_data_device *data_de static void data_device_handle_leave(void *data, struct wl_data_device *data_device) { //printf("Drag left our surface\n"); - Fl::handle(FL_DND_LEAVE, fl_dnd_target_window); +if (current_drag_offer) Fl::handle(FL_DND_LEAVE, fl_dnd_target_window); } -- cgit v1.2.3