summaryrefslogtreecommitdiff
path: root/src/Fl.cxx
diff options
context:
space:
mode:
authorMatthias Melcher <fltk@matthiasm.com>2016-04-17 15:36:23 +0000
committerMatthias Melcher <fltk@matthiasm.com>2016-04-17 15:36:23 +0000
commitcdf85352c42dd2f3b43703897148e8fa513c9cdc (patch)
treeefdafdb13036cce810c6f648bb85c44854b86ff3 /src/Fl.cxx
parentc9d3eabf4e201384a930707fbe1b8a01771f5e3d (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.cxx16
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);