summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2024-01-17 11:43:00 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2024-01-17 11:43:00 +0100
commit0dfa37f4c07beae4fb5a2118b1b67286d37a0c72 (patch)
tree80b179d903424f60c5f637064c68a2ac08d27648
parent266bf1d3c0c5ff2131e3c52b8994083eccb27da4 (diff)
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.
-rw-r--r--src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx8
1 files 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;
}