summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBill Spitzak <spitzak@gmail.com>2001-02-26 00:19:02 +0000
committerBill Spitzak <spitzak@gmail.com>2001-02-26 00:19:02 +0000
commit8470c05b5802bddbc6f02769e0d013332bbdf9a4 (patch)
tree7290d9d75d8f78aa0a37eafb63e76ff8de01cfe0 /src
parent3af11190f899272a5713b83e22879209bc2f7b1a (diff)
Fl_Gl_Window leaked memory for damage regions
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@1391 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src')
-rw-r--r--src/Fl.cxx19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/Fl.cxx b/src/Fl.cxx
index 02afc5f9a..0837daff3 100644
--- a/src/Fl.cxx
+++ b/src/Fl.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: Fl.cxx,v 1.24.2.40 2001/01/26 13:31:51 easysw Exp $"
+// "$Id: Fl.cxx,v 1.24.2.41 2001/02/26 00:19:02 spitzak Exp $"
//
// Main event handling code for the Fast Light Tool Kit (FLTK).
//
@@ -330,15 +330,12 @@ void Fl::flush() {
if (damage()) {
damage_ = 0;
for (Fl_X* x = Fl_X::first; x; x = x->next) {
- if (x->w->damage() && x->w->visible_r()) {
- if (x->wait_for_expose) {
- // leave Fl::damage() set so programs can tell damage still exists
- damage_ = 1;
- } else {
- x->flush();
- x->w->clear_damage();
- }
- }
+ if (x->wait_for_expose) {damage_ = 1; continue;}
+ Fl_Window* w = x->w;
+ if (!w->visible_r()) continue;
+ if (w->damage()) {x->flush(); w->clear_damage();}
+ // destroy damage regions for windows that don't use them:
+ if (x->region) {XDestroyRegion(x->region); x->region = 0;}
}
}
#ifdef WIN32
@@ -783,5 +780,5 @@ void Fl_Window::flush() {
}
//
-// End of "$Id: Fl.cxx,v 1.24.2.40 2001/01/26 13:31:51 easysw Exp $".
+// End of "$Id: Fl.cxx,v 1.24.2.41 2001/02/26 00:19:02 spitzak Exp $".
//