diff options
| author | Manolo Gouy <Manolo> | 2016-03-27 07:47:52 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2016-03-27 07:47:52 +0000 |
| commit | 2fd4dde9f5d682898b7fc387bb364fff2febf8fb (patch) | |
| tree | 1d3ccbc3c7bea37356c6c54df8784d68c1f618a5 /src/drivers/X11/Fl_X11_Window_Driver.cxx | |
| parent | 5f14fc3e9b81d082966665209c4246cbdfee0005 (diff) | |
Rewrite Fl_Menu_Window class under the driver model.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11441 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers/X11/Fl_X11_Window_Driver.cxx')
| -rw-r--r-- | src/drivers/X11/Fl_X11_Window_Driver.cxx | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/drivers/X11/Fl_X11_Window_Driver.cxx b/src/drivers/X11/Fl_X11_Window_Driver.cxx index 861aaf972..43cff28e9 100644 --- a/src/drivers/X11/Fl_X11_Window_Driver.cxx +++ b/src/drivers/X11/Fl_X11_Window_Driver.cxx @@ -633,6 +633,30 @@ void Fl_X11_Window_Driver::redraw_overlay() { Fl_Window_Driver::redraw_overlay(); } +void Fl_X11_Window_Driver::flush_menu() { +#if HAVE_OVERLAY + if (!fl_overlay_visual || !overlay()) {flush_single(); return;} + Fl_X *myi = Fl_X::i(pWindow); + fl_window = myi->xid; +# if defined(FLTK_USE_CAIRO) + // capture gc changes automatically to update the cairo context adequately + if(Fl::autolink_context()) Fl::cairo_make_current(fl_graphics_driver->gc()); +# endif + fl_overlay = 1; + fl_clip_region(myi->region); myi->region = 0; current(pWindow); + draw(); + fl_overlay = 0; +#else + flush_single(); +#endif +} + +void Fl_X11_Window_Driver::erase_menu() { +#if HAVE_OVERLAY + if (pWindow->shown()) XClearWindow(fl_display, fl_xid(pWindow)); +#endif +} + // // End of "$Id$". // |
