FLTK logo

[master] f5f9043 - Windows: fix undrawn pixels at right and bottom of scaled windows.

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.commit  ]
 
Previous Message ]Next Message ]

[master] f5f9043 - Windows: fix undrawn pixels at right and bottom of scaled windows. "ManoloFLTK" Nov 29, 2020  
 
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 ]
 
     
Previous Message ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.