From c472d5d8b76e17e4dd537ca20c9bfb144b06189c Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Fri, 9 Feb 2018 13:48:22 +0000 Subject: Fix fl_read_image() under MacOS platform when GUI is rescaled. This commit also simplifies the platform-dependent support of fl_read_image(): only Fl_XXX_Screen_Driver::read_win_rectangle() contains platform-specific code to capture pixels from the current window or from an offscreen buffer. Platform-independent function Fl_Screen_Driver::traverse_to_gl_subwindows() captures subwindows that intersect with the area fl_read_image() targets. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12653 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_win32.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/Fl_win32.cxx') diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx index 74b2f317b..0a8e399b9 100644 --- a/src/Fl_win32.cxx +++ b/src/Fl_win32.cxx @@ -2710,17 +2710,17 @@ void Fl_WinAPI_Window_Driver::capture_titlebar_and_borders(Fl_Shared_Image *&top // capture the 4 window sides from screen Fl_WinAPI_Screen_Driver *dr = (Fl_WinAPI_Screen_Driver *)Fl::screen_driver(); if (htop) { - r_top = dr->read_win_rectangle_unscaled(NULL, r.left, r.top, r.right - r.left, htop, 0); + r_top = dr->read_win_rectangle_unscaled(r.left, r.top, r.right - r.left, htop); top = Fl_Shared_Image::get(r_top); if (DWMscaling != 1) top->scale(ww, htop / DWMscaling, 0, 1); } if (wsides) { - r_left = dr->read_win_rectangle_unscaled(NULL, r.left, r.top + htop, wsides, h() * scaling, 0); + r_left = dr->read_win_rectangle_unscaled(r.left, r.top + htop, wsides, h() * scaling); left = Fl_Shared_Image::get(r_left); - r_right = dr->read_win_rectangle_unscaled(NULL, r.right - wsides, r.top + htop, wsides, h() * scaling, 0); + r_right = dr->read_win_rectangle_unscaled(r.right - wsides, r.top + htop, wsides, h() * scaling); right = Fl_Shared_Image::get(r_right); - r_bottom = dr->read_win_rectangle_unscaled(NULL, r.left, r.bottom - hbottom, ww, hbottom, 0); + r_bottom = dr->read_win_rectangle_unscaled(r.left, r.bottom - hbottom, ww, hbottom); bottom = Fl_Shared_Image::get(r_bottom); if (scaling != 1) { left->scale(wsides, h(), 0, 1); -- cgit v1.2.3