diff options
| author | Manolo Gouy <Manolo> | 2016-03-23 07:08:17 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2016-03-23 07:08:17 +0000 |
| commit | 270b437500552cba0d082363f9124456f16a1fda (patch) | |
| tree | ac7245b95a138a5f64c6e6b8318632fd4dc45075 /src/drivers/X11 | |
| parent | bf7e4de688fc1f0e3008049a41c07543a7da0752 (diff) | |
Rewrite Fl_Window::hide() under the driver model.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11402 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers/X11')
| -rw-r--r-- | src/drivers/X11/Fl_X11_Window_Driver.H | 1 | ||||
| -rw-r--r-- | src/drivers/X11/Fl_X11_Window_Driver.cxx | 14 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/drivers/X11/Fl_X11_Window_Driver.H b/src/drivers/X11/Fl_X11_Window_Driver.H index 89f8ca457..967b7d0fa 100644 --- a/src/drivers/X11/Fl_X11_Window_Driver.H +++ b/src/drivers/X11/Fl_X11_Window_Driver.H @@ -91,6 +91,7 @@ public: virtual void resize(int X,int Y,int W,int H); virtual void label(const char *name, const char *mininame); virtual void destroy_double_buffer(); + virtual void hide(); virtual void shape(const Fl_Image* img); virtual void icons(const Fl_RGB_Image *icons[], int count); diff --git a/src/drivers/X11/Fl_X11_Window_Driver.cxx b/src/drivers/X11/Fl_X11_Window_Driver.cxx index 0458c2b4f..4f04dba7f 100644 --- a/src/drivers/X11/Fl_X11_Window_Driver.cxx +++ b/src/drivers/X11/Fl_X11_Window_Driver.cxx @@ -19,6 +19,7 @@ #include "../../config_lib.h" #include "Fl_X11_Window_Driver.H" +#include "Fl_Xlib_Graphics_Driver.H" #include <FL/Fl_Shared_Image.H> #include <FL/Fl_Overlay_Window.H> @@ -461,6 +462,19 @@ void Fl_X11_Window_Driver::show_menu() pWindow->Fl_Window::show(); } + +void Fl_X11_Window_Driver::hide() { + Fl_X* ip = Fl_X::i(pWindow); + if (hide_common()) return; + if (ip->region) XDestroyRegion(ip->region); +# if USE_XFT + Fl_Xlib_Graphics_Driver::destroy_xft_draw(ip->xid); +# endif + // this test makes sure ip->xid has not been destroyed already + if (ip->xid) XDestroyWindow(fl_display, ip->xid); + delete ip; +} + // // End of "$Id$". // |
