|
|
commit f5f90432084cd7386764ef40b5d9d98a026c0665
Author: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>
AuthorDate: Sun Nov 29 09:14:54 2020 +0100
Commit: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>
CommitDate: Sun Nov 29 09:15:04 2020 +0100
Windows: fix undrawn pixels at right and bottom of scaled windows.
src/Fl_win32.cxx | 3 +--
src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx | 2 --
2 files changed, 1 insertion(+), 4 deletions(-)
diff --git src/Fl_win32.cxx src/Fl_win32.cxx
index e0d5c9f..fd846d9 100644
--- src/Fl_win32.cxx
+++ src/Fl_win32.cxx
@@ -1265,8 +1265,7 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar
ValidateRgn(hWnd, R2);
}
- // convert R2 in drawing units to i->region in FLTK units
- i->region = Fl_GDI_Graphics_Driver::scale_region(R2, 1 / scale, NULL);
+ if (scale != 1) DeleteObject(R2);
window->clear_damage((uchar)(window->damage() | FL_DAMAGE_EXPOSE));
// These next two statements should not be here, so that all update
diff --git src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx
index 1938fc5..31e54c3 100644
--- src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx
+++ src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx
@@ -246,14 +246,12 @@ void Fl_GDI_Graphics_Driver::scale(float f) {
/* Rescale region r with factor f and returns the scaled region.
Region r is returned unchanged if r is null or f is 1.
- The input region is deleted if dr is null.
*/
HRGN Fl_GDI_Graphics_Driver::scale_region(HRGN r, float f, Fl_GDI_Graphics_Driver *dr) {
if (r && f != 1) {
DWORD size = GetRegionData(r, 0, NULL);
RGNDATA *pdata = (RGNDATA*)malloc(size);
GetRegionData(r, size, pdata);
- if (!dr) DeleteObject(r);
POINT pt = {0, 0};
if (dr && dr->depth >= 1) { // account for translation
GetWindowOrgEx((HDC)dr->gc(), &pt);
[ Direct Link to Message ] | |
|
| |