summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--documentation/src/wayland.dox7
-rw-r--r--src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx2
2 files changed, 5 insertions, 4 deletions
diff --git a/documentation/src/wayland.dox b/documentation/src/wayland.dox
index 04376ce2d..bc94aa1e3 100644
--- a/documentation/src/wayland.dox
+++ b/documentation/src/wayland.dox
@@ -306,9 +306,10 @@ The \c wl_display_dispatch() call is repeated as long as data are available for
The event loop is run by function \c Fl_Unix_System_Driver::wait() which is used by both
the Wayland and X11 FLTK backends. Among various tasks, this function waits for data arriving
on the file descriptors FLTK is listening. Overall, the event loop of the Wayland backend
-is nearly exactly the
-same as that used by the X11 backend. The Wayland backend differs only in the callback function
-called to handle data read from the Wayland connection socket, which is Wayland-specific.
+is nearly exactly the same as that used by the X11 backend. The Wayland backend differs
+only in the callback function handling data read from the Wayland connection socket,
+and in overridden functions \c Fl_Wayland_Screen_Driver::poll_or_select_with_delay() and
+\c Fl_Wayland_Screen_Driver::poll_or_select().
\section wayland-surface Wayland windows and surfaces
diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
index de39645c0..ba35d2920 100644
--- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
+++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
@@ -1341,7 +1341,7 @@ void Fl_Wayland_Window_Driver::makeWindow()
if (pWindow->modal() || pWindow->non_modal()) {
if (pWindow->modal()) Fl::modal_ = pWindow;
if (new_window->kind == DECORATED && first_xid && first_xid->kind == DECORATED) {
- libdecor_frame_set_parent(new_window->frame, first_xid->frame);
+ if (first_xid->frame) libdecor_frame_set_parent(new_window->frame, first_xid->frame);
} else if (new_window->kind == UNFRAMED && new_window->xdg_toplevel && first_xid) {
Fl_Wayland_Window_Driver *top_dr = Fl_Wayland_Window_Driver::driver(first_xid->fl_win);
if (top_dr->xdg_toplevel()) xdg_toplevel_set_parent(new_window->xdg_toplevel,