From 1ad8cf320da6f8ce917c4f0f962dc9c9fef019da Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Mon, 18 Apr 2011 20:47:32 +0000 Subject: Fixed a problem in the WIN32 version of Fl_Paged_Device::print_window_part() and Fl_Paged_Device::print_window() where the window didn't redraw well in some cases after printing. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8606 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_Paged_Device.cxx | 6 +++++- src/Fl_win32.cxx | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'src') 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 -- cgit v1.2.3