summaryrefslogtreecommitdiff
path: root/src/Fl_Menu_Window.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Fl_Menu_Window.cxx')
-rw-r--r--src/Fl_Menu_Window.cxx7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/Fl_Menu_Window.cxx b/src/Fl_Menu_Window.cxx
index 12422cfab..a7f17c7d0 100644
--- a/src/Fl_Menu_Window.cxx
+++ b/src/Fl_Menu_Window.cxx
@@ -67,7 +67,12 @@ void Fl_Menu_Window::flush() {
if (!fl_overlay_visual || !overlay()) {Fl_Single_Window::flush(); return;}
Fl_X *myi = Fl_X::i(this);
fl_window = myi->xid;
- if (!gc) gc = XCreateGC(fl_display, myi->xid, 0, 0);
+ if (!gc) {
+ gc = XCreateGC(fl_display, myi->xid, 0, 0);
+# if defined(HAVE_CAIRO)
+ Fl::cairo_make_current(gc); // capture gc changes automatically to update the cairo context adequately
+# endif
+ }
fl_gc = gc;
fl_overlay = 1;
fl_clip_region(myi->region); myi->region = 0; current_ = this;