|
|
@@ -42,15 +42,6 @@ |
|
|
|
#include <FL/fl_draw.H> |
|
|
|
#include <FL/x.H> |
|
|
|
|
|
|
|
void Fl_Overlay_Window::show() { |
|
|
|
Fl_Double_Window::show(); |
|
|
|
if (overlay_ && overlay_ != this) overlay_->show(); |
|
|
|
} |
|
|
|
|
|
|
|
void Fl_Overlay_Window::hide() { |
|
|
|
Fl_Double_Window::hide(); |
|
|
|
} |
|
|
|
|
|
|
|
void Fl_Overlay_Window::flush() { |
|
|
|
#ifdef BOXX_BUGS |
|
|
|
if (overlay_ && overlay_ != this && overlay_->shown()) { |
|
|
@@ -61,15 +52,17 @@ void Fl_Overlay_Window::flush() { |
|
|
|
return; |
|
|
|
} |
|
|
|
#endif |
|
|
|
int erase_overlay = (damage()&FL_DAMAGE_OVERLAY) | (overlay_ == this); |
|
|
|
int erase_overlay = (damage()&FL_DAMAGE_OVERLAY); |
|
|
|
clear_damage((uchar)(damage()&~FL_DAMAGE_OVERLAY)); |
|
|
|
Fl_Double_Window::flush(erase_overlay); |
|
|
|
if (overlay_ == this) draw_overlay(); |
|
|
|
} |
|
|
|
|
|
|
|
void Fl_Overlay_Window::resize(int X, int Y, int W, int H) { |
|
|
|
Fl_Double_Window::resize(X,Y,W,H); |
|
|
|
if (overlay_ && overlay_!=this) overlay_->resize(0,0,w(),h()); |
|
|
|
Fl_X* myi = Fl_X::i(this); |
|
|
|
#if FLTK_HAVE_CAIRO |
|
|
|
Fl::cairo_make_current( this, myi->xid ); |
|
|
|
#endif |
|
|
|
draw_overlay(); |
|
|
|
#if FLTK_HAVE_CAIRO |
|
|
|
Fl::cairo_make_current( this, myi->other_xid ); |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@@ -89,7 +82,6 @@ int Fl_Overlay_Window::can_do_overlay() {return 0;} |
|
|
|
calling show(). |
|
|
|
*/ |
|
|
|
void Fl_Overlay_Window::redraw_overlay() { |
|
|
|
overlay_ = this; |
|
|
|
clear_damage((uchar)(damage()|FL_DAMAGE_OVERLAY)); |
|
|
|
Fl::damage(FL_DAMAGE_CHILD); |
|
|
|
} |
|
|
|