From 7020356df90630b93cf6be49681cc1547057f2ae Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Mon, 22 May 2023 09:05:07 +0200 Subject: [PATCH] Slightly re-organize class Fl_Wayland_Window_Driver --- documentation/src/wayland.dox | 2 +- src/drivers/Wayland/Fl_Wayland_Window_Driver.H | 5 ++--- src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx | 14 +++++++------- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/documentation/src/wayland.dox b/documentation/src/wayland.dox index 6e65a6924..d69335778 100644 --- a/documentation/src/wayland.dox +++ b/documentation/src/wayland.dox @@ -406,7 +406,7 @@ at any time and then calls the FLTK drawing API. This is made possible in function \c Fl_Wayland_Window_Driver::make_current() with \code // 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->buffer->cb) && !wait_for_expose_value ) { Fl_Wayland_Graphics_Driver::buffer_commit(window); } diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.H b/src/drivers/Wayland/Fl_Wayland_Window_Driver.H index 37e430c8f..ebcdfea5f 100644 --- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.H +++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.H @@ -48,7 +48,6 @@ class Fl_Wayland_Plugin; class Fl_Wayland_Window_Driver : public Fl_Window_Driver { friend class Fl_Wayland_Gl_Window_Driver; - friend class Fl_Wayland_Screen_Driver; private: struct shape_data_type { int lw_; ///< width of shape image @@ -57,8 +56,7 @@ private: cairo_pattern_t *mask_pattern_; } *shape_data_; cairo_rectangle_int_t *subRect_; // makes sure subwindow remains inside its parent window - static bool in_flush; // useful for progressive window drawing - static Fl_Wayland_Plugin *gl_plugin(); + static bool in_flush_; // useful for progressive window drawing Fl_Cursor standard_cursor_; // window's standard custom kind void delete_cursor_(struct wld_window *, bool delete_rgb = true); struct gl_start_support *gl_start_support_; // for support of gl_start/gl_finish @@ -87,6 +85,7 @@ public: static inline Fl_Wayland_Window_Driver* driver(const Fl_Window *w) {return (Fl_Wayland_Window_Driver*)Fl_Window_Driver::driver(w);} static void resize_after_screen_change(void *data); + static Fl_Wayland_Plugin *gl_plugin(); // --- window data int decorated_w() FL_OVERRIDE; diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx index 166628e99..3630ab06e 100644 --- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx @@ -339,7 +339,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->buffer->cb) && !wait_for_expose_value ) { //fprintf(stderr, "direct make_current: new cb=%p\n", window->buffer->cb); Fl_Wayland_Graphics_Driver::buffer_commit(window); @@ -382,9 +382,9 @@ void Fl_Wayland_Window_Driver::flush() { int W = pWindow->w(); int H = pWindow->h(); float scale = fl_graphics_driver->scale(); - Fl_Wayland_Window_Driver::in_flush = true; + Fl_Wayland_Window_Driver::in_flush_ = true; Fl_Window_Driver::flush(); - Fl_Wayland_Window_Driver::in_flush = false; + Fl_Wayland_Window_Driver::in_flush_ = false; gl_plugin()->do_swap(pWindow); // useful only for GL win with overlay if (scale != fl_graphics_driver->scale() || W != pWindow->w() || H != pWindow->h()) gl_plugin()->invalidate(pWindow); return; @@ -396,9 +396,9 @@ void Fl_Wayland_Window_Driver::flush() { struct flCairoRegion* r = (struct flCairoRegion*)ip->region; if (!window->buffer || pWindow->as_overlay_window()) r = NULL; - Fl_Wayland_Window_Driver::in_flush = true; + Fl_Wayland_Window_Driver::in_flush_ = true; Fl_Window_Driver::flush(); - Fl_Wayland_Window_Driver::in_flush = false; + Fl_Wayland_Window_Driver::in_flush_ = false; if (window->buffer->cb) wl_callback_destroy(window->buffer->cb); Fl_Wayland_Graphics_Driver::buffer_commit(window, r); } @@ -475,7 +475,7 @@ void Fl_Wayland_Window_Driver::hide() { //fprintf(stderr, "After hide: sub=%p frame=%p xdg=%p top=%p pop=%p surf=%p\n", wld_win->subsurface, wld_win->frame, wld_win->xdg_surface, wld_win->xdg_toplevel, wld_win->xdg_popup, wld_win->wl_surface); free(wld_win); } - if (pWindow->as_gl_window() && in_flush) { + if (pWindow->as_gl_window() && in_flush_) { ip->xid = 0; ip->next = NULL; // to end the loop in calling Fl::flush() Fl::add_timeout(.01, (Fl_Timeout_Handler)delayed_delete_Fl_X, ip); @@ -990,7 +990,7 @@ static const struct xdg_popup_listener popup_listener = { .popup_done = popup_done, }; -bool Fl_Wayland_Window_Driver::in_flush = false; +bool Fl_Wayland_Window_Driver::in_flush_ = false; // Compute the parent window of the transient scale window static Fl_Window *calc_transient_parent(int ¢er_x, int ¢er_y) {