From 6712130f22914319f3c42365376e42d14bf9be0b Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Mon, 3 Jun 2024 15:05:04 +0200 Subject: Document how to control window location in screen under Wayland --- FL/Fl_Window.H | 8 ++++++-- src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/FL/Fl_Window.H b/FL/Fl_Window.H index 03e20ac5c..3df78092e 100644 --- a/FL/Fl_Window.H +++ b/FL/Fl_Window.H @@ -174,8 +174,12 @@ public: \see Fl::screen_xywh(int &X, int &Y, int &W, int &H, int n) \note Under Wayland, it's generally not possible for the client app to control - the position of a window in the system. It's only possible to specify on what screen - should the compositor place a fullscreen window. + the position of a window in the system. It's possible to specify on what screen + should the compositor place a fullscreen window. It's also possible to make an + Fl_Window the child of another window or group and control with \p x and \p y + its screen position relatively to the enclosing window. Apply member function + Fl_Window::allow_expand_outside_parent() to the child window to allow it + to expand partially or totally outside its parent. */ Fl_Window(int x, int y, int w, int h, const char *title = 0); /** diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx index 4d36f8ce9..467e985ef 100644 --- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx @@ -1867,6 +1867,7 @@ void Fl_Wayland_Window_Driver::resize(int X, int Y, int W, int H) { } if (fl_win && fl_win->kind == SUBWINDOW && fl_win->subsurface) { + // Interactive move or resize of a subwindow requires to commit the parent surface (#987) Fl_Window *parent = pWindow->window(); struct wld_window *xid = fl_wl_xid(parent); if (xid) wl_surface_commit(xid->wl_surface); -- cgit v1.2.3