From 5ca73da7b3e14153bb9f3bd17a64ced4874cc43d Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Sun, 6 Mar 2016 22:22:22 +0000 Subject: Driver-based Fl_Double_Window implementation - continued. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11304 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx | 24 +++++++++++++----------- src/drivers/Cocoa/Fl_Cocoa_Window_Driver.h | 1 - 2 files changed, 13 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx index 08a3184b9..685aebbd3 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx +++ b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx @@ -22,10 +22,22 @@ #include #include +// class used for Fl_Double_Window but not for Fl_Overlay_Window +class Fl_Cocoa_Double_Window_Driver : public Fl_Cocoa_Window_Driver { +public: + Fl_Cocoa_Double_Window_Driver(Fl_Window *w) : Fl_Cocoa_Window_Driver(w) {} + int double_flush(int eraseoverlay) { + draw(); + return 0; + } +}; Fl_Window_Driver *Fl_Window_Driver::newWindowDriver(Fl_Window *w) { - return new Fl_Cocoa_Window_Driver(w); + if (w->as_double_window() && !w->as_double_window()->as_overlay_window()) + return new Fl_Cocoa_Double_Window_Driver(w); + else + return new Fl_Cocoa_Window_Driver(w); } @@ -43,16 +55,6 @@ void Fl_Cocoa_Window_Driver::take_focus() set_key_window(); } -int Fl_Cocoa_Window_Driver::double_flush(int eraseoverlay) { - if ( ((Fl_Double_Window*)w)->as_overlay_window() ) { - Fl_Window_Driver::double_flush(eraseoverlay); - } else { - draw(); - } - return 0; -} - - // // End of "$Id$". // diff --git a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.h b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.h index e7f683689..b0c756aa1 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.h +++ b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.h @@ -47,7 +47,6 @@ class FL_EXPORT Fl_Cocoa_Window_Driver : public Fl_Window_Driver public: Fl_Cocoa_Window_Driver(Fl_Window*); virtual void take_focus(); - int double_flush(int eraseoverlay); }; -- cgit v1.2.3