diff options
| author | Manolo Gouy <Manolo> | 2016-03-19 23:04:28 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2016-03-19 23:04:28 +0000 |
| commit | 51030530f24c33c59db3084bc2b088d50b2c6627 (patch) | |
| tree | 7ae4c000e5f5d50b26988df77ae7a3b04318baf7 /src/drivers/X11 | |
| parent | c2067d81be322b07ca541dbc564fc6c1ca64025a (diff) | |
Advancing Albrecht's plan for the Fl_Window_Driver class.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11387 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers/X11')
| -rw-r--r-- | src/drivers/X11/Fl_X11_Window_Driver.H | 2 | ||||
| -rw-r--r-- | src/drivers/X11/Fl_X11_Window_Driver.cxx | 28 |
2 files changed, 9 insertions, 21 deletions
diff --git a/src/drivers/X11/Fl_X11_Window_Driver.H b/src/drivers/X11/Fl_X11_Window_Driver.H index 9b7e1954b..206ffe91a 100644 --- a/src/drivers/X11/Fl_X11_Window_Driver.H +++ b/src/drivers/X11/Fl_X11_Window_Driver.H @@ -77,7 +77,6 @@ public: // --- window management virtual void take_focus(); - virtual void flush_single(); virtual void flush_double(); virtual void flush_overlay(); virtual void draw_begin(); @@ -89,6 +88,7 @@ public: virtual void free_icons(); virtual void capture_titlebar_and_borders(Fl_Shared_Image*& top, Fl_Shared_Image*& left, Fl_Shared_Image*& bottom, Fl_Shared_Image*& right); virtual void wait_for_expose(); + virtual void destroy_double_buffer(); }; diff --git a/src/drivers/X11/Fl_X11_Window_Driver.cxx b/src/drivers/X11/Fl_X11_Window_Driver.cxx index d0443ae1b..15a7105e3 100644 --- a/src/drivers/X11/Fl_X11_Window_Driver.cxx +++ b/src/drivers/X11/Fl_X11_Window_Driver.cxx @@ -148,18 +148,6 @@ void Fl_X11_Window_Driver::draw_begin() } -void Fl_X11_Window_Driver::flush_single() -{ - if (!pWindow->shown()) return; - pWindow->make_current(); // make sure fl_gc is non-zero - Fl_X *i = Fl_X::i(pWindow); - if (!i) return; - fl_clip_region(i->region); - i->region = 0; - pWindow->draw(); -} - - void Fl_X11_Window_Driver::flush_double() { if (!pWindow->shown()) return; @@ -215,7 +203,6 @@ void Fl_X11_Window_Driver::flush_double() void Fl_X11_Window_Driver::flush_overlay() { Fl_Overlay_Window *oWindow = pWindow->as_overlay_window(); - if (!oWindow) return flush_single(); if (!pWindow->shown()) return; pWindow->make_current(); // make sure fl_gc is non-zero @@ -289,15 +276,16 @@ void Fl_X11_Window_Driver::flush_overlay() } - +void Fl_X11_Window_Driver::destroy_double_buffer() { #if USE_XDBE - -//void Fl_X11_Dbe_Window_Driver::destroy_double_buffer() { -// Fl_X *i = Fl_X::i(pWindow); -// XdbeDeallocateBackBufferName(fl_display, i->other_xid); -// i->other_xid = 0; -//} + if (can_xdbe()) { + Fl_X *i = Fl_X::i(pWindow); + XdbeDeallocateBackBufferName(fl_display, i->other_xid); + i->other_xid = 0; + } else #endif // USE_XDBE + Fl_Window_Driver::destroy_double_buffer(); +} void Fl_X11_Window_Driver::shape_bitmap_(Fl_Image* b) { |
