diff options
| author | Bill Spitzak <spitzak@gmail.com> | 2001-02-26 00:19:02 +0000 |
|---|---|---|
| committer | Bill Spitzak <spitzak@gmail.com> | 2001-02-26 00:19:02 +0000 |
| commit | 8470c05b5802bddbc6f02769e0d013332bbdf9a4 (patch) | |
| tree | 7290d9d75d8f78aa0a37eafb63e76ff8de01cfe0 /src | |
| parent | 3af11190f899272a5713b83e22879209bc2f7b1a (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.cxx | 19 |
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 $". // |
