diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2024-06-02 08:28:40 +0200 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2024-06-02 08:28:40 +0200 |
| commit | d792ed21f55a8fadbcb0edb99647e5fb3ef01669 (patch) | |
| tree | c0cebfbc440d51a339537ef6a4ed86c02d8f9079 /src/drivers/Wayland | |
| parent | 482da12f717040e4c07a0ffb03cc2d3fd6a4d012 (diff) | |
Fix Child Windows under Wayland are clipped on resizing … (#987)
Diffstat (limited to 'src/drivers/Wayland')
| -rw-r--r-- | src/drivers/Wayland/Fl_Wayland_Window_Driver.H | 2 | ||||
| -rw-r--r-- | src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.H b/src/drivers/Wayland/Fl_Wayland_Window_Driver.H index 192d82f5a..42967d6b1 100644 --- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.H +++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.H @@ -56,6 +56,7 @@ private: Fl_Image* shape_; ///< shape image cairo_pattern_t *mask_pattern_; } *shape_data_; + bool can_expand_outside_parent_; // specially to allow window docking (#987) cairo_rectangle_int_t *subRect_; // makes sure subwindow remains inside its parent window static bool in_flush_; // useful for progressive window drawing Fl_Cursor standard_cursor_; // window's standard custom kind @@ -143,6 +144,7 @@ public: static bool new_popup; // to support tall menu buttons bool process_menu_or_tooltip(struct wld_window *); static Fl_Window *previous_floatingtitle; // to support floating menuwindow w/ title + void allow_expand_outside_parent() FL_OVERRIDE { can_expand_outside_parent_ = true; } }; diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx index 904c878da..be0abf38e 100644 --- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx @@ -70,6 +70,7 @@ Fl_Wayland_Window_Driver::Fl_Wayland_Window_Driver(Fl_Window *win) : Fl_Window_D gl_start_support_ = NULL; subRect_ = NULL; is_popup_window_ = false; + can_expand_outside_parent_ = false; } @@ -1889,7 +1890,7 @@ static bool crect_equal(cairo_rectangle_int_t *to, cairo_rectangle_int_t *with) void Fl_Wayland_Window_Driver::checkSubwindowFrame() { - if (!pWindow->parent()) return; + if (!pWindow->parent() || can_expand_outside_parent_) return; // make sure this subwindow doesn't leak out of its parent window Fl_Window *from = pWindow, *parent; cairo_rectangle_int_t full = {0, 0, pWindow->w(), pWindow->h()}; // full subwindow area |
