diff options
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$". // |
