diff options
| -rw-r--r-- | src/Fl_Paged_Device.cxx | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/Fl_Paged_Device.cxx b/src/Fl_Paged_Device.cxx index c8eb22249..fcc18eab2 100644 --- a/src/Fl_Paged_Device.cxx +++ b/src/Fl_Paged_Device.cxx @@ -55,8 +55,8 @@ void Fl_Paged_Device::print_widget(Fl_Widget* widget, int delta_x, int delta_y) if (new_x != old_x || new_y != old_y) { translate(new_x - old_x, new_y - old_y ); } - // if widget is a window, clip all drawings to the window area - if (is_window) fl_push_clip(0, 0, widget->w(), widget->h() ); + // if widget is a main window, clip all drawings to the window area + if (is_window && !widget->window()) fl_push_clip(0, 0, widget->w(), widget->h() ); // we do some trickery to recognize OpenGL windows and draw them via a plugin int drawn_by_plugin = 0; if (widget->as_gl_window()) { @@ -74,7 +74,7 @@ void Fl_Paged_Device::print_widget(Fl_Widget* widget, int delta_x, int delta_y) if (!drawn_by_plugin) { widget->draw(); } - if (is_window) fl_pop_clip(); + if (is_window && !widget->window()) fl_pop_clip(); // find subwindows of widget and print them traverse(widget); // reset origin to where it was |
