diff options
| -rw-r--r-- | FL/Fl_Cairo_Window.H | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/FL/Fl_Cairo_Window.H b/FL/Fl_Cairo_Window.H index ec2d74bb4..dcec92f48 100644 --- a/FL/Fl_Cairo_Window.H +++ b/FL/Fl_Cairo_Window.H @@ -59,10 +59,15 @@ protected: /** Overloaded to provide cairo callback support */ void draw() { Fl_Double_Window::draw(); - // manual method ? if yes explicitly get a cairo_context here - if (!Fl::cairo_autolink_context()) - Fl::cairo_make_current(this); - if (draw_cb_) draw_cb_(this, Fl::cairo_cc()); + if (draw_cb_) { // call the Cairo draw callback + // manual method ? if yes explicitly get a cairo_context here + if (!Fl::cairo_autolink_context()) + Fl::cairo_make_current(this); + draw_cb_(this, Fl::cairo_cc()); + // flush cairo drawings: necessary at least for Windows + cairo_surface_t *s = cairo_get_target(Fl::cairo_cc()); + cairo_surface_flush(s); + } } public: |
