summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Fl_Paged_Device.cxx6
-rw-r--r--src/Fl_win32.cxx2
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