diff options
| author | Manolo Gouy <Manolo> | 2016-03-22 17:47:44 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2016-03-22 17:47:44 +0000 |
| commit | 6ec8ebc4f83fa2c143bff54e66672226cdf7d85c (patch) | |
| tree | f91bde6630403fd3961ae4bdf9a2c554ea5c12d1 /src/drivers | |
| parent | 6302b3da00f8116e1bf62629c6d3ab0f719d1a33 (diff) | |
Rewrite Fl_Window::show() and Fl_Menu_Window::show() under the driver model.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11400 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers')
| -rw-r--r-- | src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H | 1 | ||||
| -rw-r--r-- | src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H | 1 | ||||
| -rw-r--r-- | src/drivers/X11/Fl_X11_Window_Driver.H | 2 | ||||
| -rw-r--r-- | src/drivers/X11/Fl_X11_Window_Driver.cxx | 21 |
4 files changed, 25 insertions, 0 deletions
diff --git a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H index 057b5fcd2..4925f1c33 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H +++ b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H @@ -75,6 +75,7 @@ public: virtual void draw_end(); virtual void make_current(); virtual void label(const char *name, const char *mininame); + virtual void show(); virtual void shape(const Fl_Image* img); // that one is implemented in Fl_Cocoa.mm because it uses Objective-c diff --git a/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H b/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H index 051a86300..70129e75b 100644 --- a/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H +++ b/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H @@ -79,6 +79,7 @@ public: virtual void flush_overlay(); virtual void draw_begin(); virtual void make_current(); + virtual void show(); virtual void label(const char *name,const char *iname); virtual void shape(const Fl_Image* img); diff --git a/src/drivers/X11/Fl_X11_Window_Driver.H b/src/drivers/X11/Fl_X11_Window_Driver.H index b28a19ab9..06e38a39c 100644 --- a/src/drivers/X11/Fl_X11_Window_Driver.H +++ b/src/drivers/X11/Fl_X11_Window_Driver.H @@ -86,6 +86,8 @@ public: virtual void flush_overlay(); virtual void draw_begin(); virtual void make_current(); + virtual void show(); + virtual void show_menu(); virtual void label(const char *name, const char *mininame); virtual void destroy_double_buffer(); diff --git a/src/drivers/X11/Fl_X11_Window_Driver.cxx b/src/drivers/X11/Fl_X11_Window_Driver.cxx index 1c64b24e9..0458c2b4f 100644 --- a/src/drivers/X11/Fl_X11_Window_Driver.cxx +++ b/src/drivers/X11/Fl_X11_Window_Driver.cxx @@ -22,6 +22,7 @@ #include <FL/Fl_Shared_Image.H> #include <FL/Fl_Overlay_Window.H> +#include <FL/Fl_Menu_Window.H> #include <FL/fl_draw.H> #include <FL/fl_ask.H> #include <FL/Fl.H> @@ -32,6 +33,13 @@ #define ShapeBounding 0 #define ShapeSet 0 +#if HAVE_OVERLAY +extern XVisualInfo *fl_find_overlay_visual(); +extern XVisualInfo *fl_overlay_visual; +extern Colormap fl_overlay_colormap; +extern unsigned long fl_transparent_pixel; +#endif + Window fl_window; @@ -440,6 +448,19 @@ void Fl_X11_Window_Driver::make_current() { } +void Fl_X11_Window_Driver::show_menu() +{ +#if HAVE_OVERLAY + if (!pWindow->shown() && ((Fl_Menu_Window*)pWindow)->overlay() && fl_find_overlay_visual()) { + XInstallColormap(fl_display, fl_overlay_colormap); + fl_background_pixel = int(fl_transparent_pixel); + Fl_X::make_xid(pWindow, fl_overlay_visual, fl_overlay_colormap); + fl_background_pixel = -1; + } else +#endif + pWindow->Fl_Window::show(); +} + // // End of "$Id$". // |
