On Monday 06 July 2026 10:42:37 Pali Rohár wrote:
> On Monday 06 July 2026 12:57:00 LIU Hao wrote:
> > 在 2026-7-6 05:48, Pali Rohár 写道:
> > > Hello, in the attachment I'm sending changes for mingw-w64 scrnsave 
> > > library.
> > > 
> > > Changes are fixing entrypoint for UNICODE version of library
> > > (libscrnsavw.a), disabling win9x compatibility code for non-i386 builds
> > > and fixing win9x compatibility code to really work on win9x and winnt.
> > > 
> > > With those changes the WinSDK sample fractal.c screensaver can be linked
> > > with mingw-w64 scrnsave library.
> > 
> > Does it make sense to apply this change on top of it:
> > 
> > diff --git a/mingw-w64-crt/libsrc/scrnsave.c 
> > b/mingw-w64-crt/libsrc/scrnsave.c
> > index 80a483b23..5af6ccac4 100644
> > --- a/mingw-w64-crt/libsrc/scrnsave.c
> > +++ b/mingw-w64-crt/libsrc/scrnsave.c
> > @@ -238,16 +238,14 @@ static int LaunchScreenSaver(HWND hParent)
> 
> So for the whole context those are hidden lines above:
> 
>      if (hParent)
>        {
>          style = WS_CHILD;
>          GetClientRect(hParent, &rc);
>        }
>      else
>        {
>          style = WS_POPUP;
> 
> >        hdc = GetDC(NULL);
> >        GetClipBox(hdc, &rc);
> >        ReleaseDC(NULL, hdc);
> > -      rc.right -= rc.left;
> > -      rc.bottom -= rc.top;
> >        style |= WS_VISIBLE;
> >      }
> > 
> >    /* create main screen saver window */
> >    hMainWindow = CreateWindowEx(hParent ? 0 : WS_EX_TOPMOST, CLASS_SCRNSAVE,
> >                                 TEXT("SCREENSAVER"), style,
> > -                               rc.left, rc.top, rc.right, rc.bottom, 
> > hParent, NULL,
> > -                               hMainInstance, NULL);
> > +                               rc.left, rc.top, rc.right - rc.left, 
> > rc.bottom - rc.top,
> > +                               hParent, NULL, hMainInstance, NULL);
> > 
> >    /* display window and start pumping messages */
> >    if (hMainWindow)
> > 
> > 
> > Your proposed change stores the width in `right` and height in `bottom`,
> > which contradicts the names of those fields.
> > 
> > `GetClientRect()` sets `left` and `top` to zeros so it happens to work 
> > either way.
> 
> That sounds like a good idea. I will test this change if everything
> would work as expected.

This change is working fine, so go ahead with it.

Anyway, this format what is stored in right and bottom was there even
before my change. I just replaced one API by another so it would work
also on other Windows versions.


_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to