diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_Paged_Device.cxx | 6 | ||||
| -rw-r--r-- | src/Fl_win32.cxx | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/Fl_Paged_Device.cxx b/src/Fl_Paged_Device.cxx index 75c0e9dc1..ae7f7d832 100644 --- a/src/Fl_Paged_Device.cxx +++ b/src/Fl_Paged_Device.cxx @@ -138,10 +138,14 @@ void Fl_Paged_Device::print_window_part(Fl_Window *win, int x, int y, int w, int win->make_current(); uchar *image_data; image_data = fl_read_image(NULL, x, y, w, h); - save_front->show(); + if (save_front != win) save_front->show(); current->set_current(); fl_draw_image(image_data, delta_x, delta_y, w, h, 3); delete[] image_data; +#ifdef WIN32 + fl_gc = GetDC(fl_xid(win)); + ReleaseDC(fl_xid(win), fl_gc); +#endif } /** diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx index 734e6a60a..1fae9cf52 100644 --- a/src/Fl_win32.cxx +++ b/src/Fl_win32.cxx @@ -1997,6 +1997,8 @@ void Fl_Paged_Device::print_window(Fl_Window *win, int x_offset, int y_offset) delete[] bottom_image; // print the window inner part this->print_widget(win, x_offset + bx, y_offset + bt + by); + fl_gc = GetDC(fl_xid(win)); + ReleaseDC(fl_xid(win), fl_gc); } #ifdef USE_PRINT_BUTTON |
