diff options
| author | Manolo Gouy <Manolo> | 2011-04-17 08:48:40 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2011-04-17 08:48:40 +0000 |
| commit | ddc4b21b5502a7331e09c540a3e3d9d5774775a3 (patch) | |
| tree | 00ff18960b768bd974bd639d198187a26e46e12c /src/Fl_win32.cxx | |
| parent | 8212e4bfe793db92b5fea731945bf9b7bc1acbcd (diff) | |
Fixed Fl_Paged_Device::print_window() that did not work under Windows seven.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8595 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_win32.cxx')
| -rw-r--r-- | src/Fl_win32.cxx | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx index 20b9a2b00..734e6a60a 100644 --- a/src/Fl_win32.cxx +++ b/src/Fl_win32.cxx @@ -1976,12 +1976,15 @@ void Fl_Paged_Device::print_window(Fl_Window *win, int x_offset, int y_offset) win->show(); Fl::check(); win->make_current(); + HDC save_gc = fl_gc; + fl_gc = GetDC(NULL); // get the screen device context // capture the 4 window sides from screen - // use negative 4th argument to allow negative 2nd or 3rd arguments - uchar *top_image = fl_read_image(NULL, -bx, - bt - by, -ww, bt + by); - uchar *left_image = fl_read_image(NULL, -bx, - bt - by, -bx, wh); - uchar *right_image = fl_read_image(NULL, win->w(), - bt - by, -bx, wh); - uchar *bottom_image = fl_read_image(NULL, -bx, win->h(), -ww, by); + RECT r; GetWindowRect(fl_window, &r); + uchar *top_image = fl_read_image(NULL, r.left, r.top, ww, bt + by); + uchar *left_image = fl_read_image(NULL, r.left, r.top, bx, wh); + uchar *right_image = fl_read_image(NULL, r.right - bx, r.top, bx, wh); + uchar *bottom_image = fl_read_image(NULL, r.left, r.bottom-by, ww, by); + ReleaseDC(NULL, fl_gc); fl_gc = save_gc; this->set_current(); // print the 4 window sides fl_draw_image(top_image, x_offset, y_offset, ww, bt + by, 3); |
