summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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;
}