Slightly re-organize class Fl_Wayland_Window_Driver
This commit is contained in:
parent
60440632ee
commit
7020356df9
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user