From 0dfa37f4c07beae4fb5a2118b1b67286d37a0c72 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Wed, 17 Jan 2024 11:43:00 +0100 Subject: Wayland + full-size subwindow resizing issue - cont'd (#878) Implement a less strict handling of resizing of a decorated window entirely covered by a subwindow where throttling of fast resize commands is guided by the value of the in_use member variable of the window's wld_buffer. --- src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx index ac34952e0..e32943caa 100644 --- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx @@ -909,9 +909,13 @@ static void handle_configure(struct libdecor_frame *frame, #ifndef LIBDECOR_MR131 bool in_decorated_window_resizing = (window->state & LIBDECOR_WINDOW_STATE_RESIZING); #endif - if (in_decorated_window_resizing && window->buffer && window->buffer->cb) { + bool condition = in_decorated_window_resizing && window->buffer; + if (condition) { // see issue #878 + condition = (window->covered ? window->buffer->in_use : (window->buffer->cb != NULL)); + } + if (condition) { // Skip resizing & redrawing. The last resize request won't be skipped because - // in_decorated_window_resizing will be false then. + // in_decorated_window_resizing will be false or cb will be NULL then. return; } -- cgit v1.2.3