diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2016-04-17 15:36:23 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2016-04-17 15:36:23 +0000 |
| commit | cdf85352c42dd2f3b43703897148e8fa513c9cdc (patch) | |
| tree | efdafdb13036cce810c6f648bb85c44854b86ff3 /src/Fl.cxx | |
| parent | c9d3eabf4e201384a930707fbe1b8a01771f5e3d (diff) | |
virtualized some Region calls.
There is a deeper issue here: regions should be handled by the graphics driver that is associated with the Fl_Window of this widget... .
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11643 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl.cxx')
| -rw-r--r-- | src/Fl.cxx | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/Fl.cxx b/src/Fl.cxx index 26e7d4080..38b9434b5 100644 --- a/src/Fl.cxx +++ b/src/Fl.cxx @@ -686,7 +686,10 @@ void Fl::flush() { if (!wi->visible_r()) continue; if (wi->damage()) {i->flush(); wi->clear_damage();} // destroy damage regions for windows that don't use them: - if (i->region) {Fl_Graphics_Driver::XDestroyRegion(i->region); i->region = 0;} + if (i->region) { + fl_graphics_driver->XDestroyRegion(i->region); + i->region = 0; + } } } screen_driver()->flush(); @@ -1491,7 +1494,10 @@ void Fl_Widget::damage(uchar fl) { // damage entire window by deleting the region: Fl_X* i = Fl_X::i((Fl_Window*)this); if (!i) return; // window not mapped, so ignore it - if (i->region) {Fl_Graphics_Driver::XDestroyRegion(i->region); i->region = 0;} + if (i->region) { + fl_graphics_driver->XDestroyRegion(i->region); + i->region = 0; + } damage_ |= fl; Fl::damage(FL_DAMAGE_CHILD); } @@ -1525,13 +1531,13 @@ void Fl_Widget::damage(uchar fl, int X, int Y, int W, int H) { if (wi->damage()) { // if we already have damage we must merge with existing region: if (i->region) { - Fl_Graphics_Driver::add_rectangle_to_region(i->region, X, Y, W, H); + fl_graphics_driver->add_rectangle_to_region(i->region, X, Y, W, H); } wi->damage_ |= fl; } else { // create a new region: - if (i->region) Fl_Graphics_Driver::XDestroyRegion(i->region); - i->region = Fl_Graphics_Driver::XRectangleRegion(X,Y,W,H); + if (i->region) fl_graphics_driver->XDestroyRegion(i->region); + i->region = fl_graphics_driver->XRectangleRegion(X,Y,W,H); wi->damage_ = fl; } Fl::damage(FL_DAMAGE_CHILD); |
