Slightly re-organize class Fl_Wayland_Window_Driver

This commit is contained in:
ManoloFLTK 2023-05-22 09:05:07 +02:00
parent 60440632ee
commit 7020356df9
3 changed files with 10 additions and 11 deletions

View File

@ -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);
}

View File

@ -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;

View File

@ -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 &center_x, int &center_y) {