summaryrefslogtreecommitdiff
path: root/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2024-01-18 08:10:33 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2024-01-18 08:10:33 +0100
commitb7fba465cec78b00a46a47ebd3f8f231b5feb5ee (patch)
treeb4dc9b1261b24e5d4aa24757fa1718c69dbd486a /src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
parent554bccbecdc2acdc73fd1ff851c541839ed8b523 (diff)
Wayland: throttle resize operations also for top-level GL windows
Member cb of struct wld_buffer is replaced by member frame_cb of struct wld_window. This allows frame_cb to be used both for non-GL and for top-level GL windows.
Diffstat (limited to 'src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx')
-rw-r--r--src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
index e32943caa..138ef53d5 100644
--- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
+++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
@@ -352,7 +352,7 @@ void Fl_Wayland_Window_Driver::make_current() {
}
// to support progressive drawing
- if ( (!Fl_Wayland_Window_Driver::in_flush_) && window->buffer && (!window->buffer->cb)
+ if ( (!Fl_Wayland_Window_Driver::in_flush_) && window->buffer && (!window->frame_cb)
&& window->buffer->draw_buffer_needs_commit && (!wait_for_expose_value) ) {
Fl_Wayland_Graphics_Driver::buffer_commit(window);
}
@@ -415,7 +415,7 @@ void Fl_Wayland_Window_Driver::flush() {
Fl_Wayland_Window_Driver::in_flush_ = true;
Fl_Window_Driver::flush();
Fl_Wayland_Window_Driver::in_flush_ = false;
- if (!window->buffer->cb) Fl_Wayland_Graphics_Driver::buffer_commit(window, r);
+ if (!window->frame_cb) Fl_Wayland_Graphics_Driver::buffer_commit(window, r);
}
@@ -909,9 +909,9 @@ static void handle_configure(struct libdecor_frame *frame,
#ifndef LIBDECOR_MR131
bool in_decorated_window_resizing = (window->state & LIBDECOR_WINDOW_STATE_RESIZING);
#endif
- bool condition = in_decorated_window_resizing && window->buffer;
+ bool condition = in_decorated_window_resizing;
if (condition) { // see issue #878
- condition = (window->covered ? window->buffer->in_use : (window->buffer->cb != NULL));
+ condition = (window->covered ? (window->buffer && window->buffer->in_use) : (window->frame_cb != NULL));
}
if (condition) {
// Skip resizing & redrawing. The last resize request won't be skipped because