summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Fl_Window_Driver.H1
-rw-r--r--src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx3
2 files changed, 3 insertions, 1 deletions
diff --git a/src/Fl_Window_Driver.H b/src/Fl_Window_Driver.H
index 51d0187e3..21007d9df 100644
--- a/src/Fl_Window_Driver.H
+++ b/src/Fl_Window_Driver.H
@@ -112,6 +112,7 @@ public:
char show_iconic() { return Fl_Window::show_iconic_; }
void show_iconic(char c) { Fl_Window::show_iconic_ = c; }
void flx(Fl_X *x) { pWindow->flx_ = x; }
+ Fl_Cursor cursor_default() { return pWindow->cursor_default; }
/** for an Fl_Overlay_Window, returns the value of its overlay_ member variable */
Fl_Window *overlay() {
return pWindow->as_overlay_window() ? pWindow->as_overlay_window()->overlay_ : NULL;
diff --git a/src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx
index f25afbad4..30827508e 100644
--- a/src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx
+++ b/src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx
@@ -434,12 +434,13 @@ static void cursor_surface_enter(void *data,
//fprintf(stderr, "cursor_surface_enter: wl_output_get_user_data(%p)=%p\n", wl_output, pointer_output->output);
wl_list_insert(&seat->pointer_outputs, &pointer_output->link);
try_update_cursor(seat);
- // maintain custom window cursor
+ // maintain custom or standard window cursor
Fl_Window *win = Fl::first_window();
if (win) {
Fl_Wayland_Window_Driver *driver = Fl_Wayland_Window_Driver::driver(win);
struct wl_cursor *cursor = driver->cursor();
if (cursor) do_set_cursor(seat, cursor);
+ else driver->set_cursor(driver->cursor_default());
}
}