commit 1d44c0ebae2736c51eaab755d45de44d12a75ed2
Author: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>
AuthorDate: Thu Sep 25 14:43:23 2025 +0200
Commit: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>
CommitDate: Thu Sep 25 14:43:23 2025 +0200
Wayland: improve support of draggable subwindow (related to #1307)
src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
index eb8d364..56a7b80 100644
--- src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
+++ src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
@@ -1517,6 +1517,7 @@ void Fl_Wayland_Window_Driver::makeWindow()
wait_for_expose_value = 0;
pWindow->border(0);
checkSubwindowFrame(); // make sure subwindow doesn't leak outside parent
+ if (can_expand_outside_parent_) parent->covered = true; // for #1307
} else { // a window without decoration
new_window->kind = UNFRAMED;
@@ -1956,7 +1957,9 @@ void Fl_Wayland_Window_Driver::resize(int X, int Y, int W, int H) {
wl_callback_destroy(fl_win->frame_cb);
fl_win->frame_cb = NULL;
}
- if (parent_xid->buffer) Fl_Wayland_Graphics_Driver::buffer_commit(parent_xid);
+ if (parent_xid->buffer && !parent_xid->frame_cb) {
+ Fl_Wayland_Graphics_Driver::buffer_commit(parent_xid);
+ }
} else {
if (!(parent && parent->damage()) && !parent_xid->frame_cb) {
// use the frame callback mechanism and memorize current X,Y,W,H values
[ Direct Link to Message ]