summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2020-11-29 09:14:54 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2020-11-29 09:15:04 +0100
commitf5f90432084cd7386764ef40b5d9d98a026c0665 (patch)
tree67452e694dc44cdde63f30fdff94e60933eb265a /src
parent4291e9497bb5b0e83abd4e8ea4a15febaef0616a (diff)
Windows: fix undrawn pixels at right and bottom of scaled windows.
Diffstat (limited to 'src')
-rw-r--r--src/Fl_win32.cxx3
-rw-r--r--src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx2
2 files changed, 1 insertions, 4 deletions
diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx
index e0d5c9f4b..fd846d980 100644
--- a/src/Fl_win32.cxx
+++ b/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 a/src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx b/src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx
index 1938fc5d5..31e54c37f 100644
--- a/src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx
+++ b/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);