[Gambas-user] Settings.Write(MyForm) could it only update pos/size if not maximized?
Bruce Steers
bsteers4 at gmail.com
Sat Jan 21 14:46:22 CET 2023
On Fri, 20 Jan 2023 at 13:22, Benoit Minisini <
benoit.minisini at gambas-basic.org> wrote:
> Le 20/01/2023 à 12:16, Bruce Steers a écrit :
> >
> >
> > On Fri, 20 Jan 2023, 02:57 Benoit Minisini,
> > <benoit.minisini at gambas-basic.org
> > <mailto:benoit.minisini at gambas-basic.org>> wrote:
> >
> > Le 20/01/2023 à 01:28, Bruce Steers a écrit :
> > > Hey Ben.
> > > I've noticed something if we save a window position on program
> > exit with
> > > Settings.Write(Me) (my programs and the gambas ide)
> > >
> > > if the window is maximized the geometry saves as the full window
> > size,
> > > the screen and adds a var to the .Settings variant[] to specify
> > if it's
> > > maximized.
> > >
> > > On Reloading a previously maximized form and a Settings.Read(Me)
> > call it
> > > restores the windows full screen size then sets Maximized = True.
> > >
> > > Then if you un-maximize the window is still full screen just not
> > maximized.
> > >
> > > Wouldn't it be better or could we have an option to save the last
> > known
> > > window dimensions if maximized?
> > >
> > > Does that make sense? and would it even work?
> > > So if window was maximized on closing then on the next load it
> would
> > > restore the non-maximized size, then maximize the window, then
> upon
> > > un-maximizing the window should shrink to the last saved
> > un-maximized size.
> > >
> > > It seems pointless (and i think my idea is a better method) to
> > save the
> > > windows size if maximized considering the Settings.class will set
> > > Form.Maximized = True anyway.
> > >
> > > I feel that previous window position/size was data i wish i
> > hadn't lost :(
> > >
> > > ;)
> > >
> > > Respects
> > > BruceS
> > >
> >
> > Good point.
> >
> > --
> > Benoît Minisini.
> >
> >
> > It's very good in action.
> >
> > I made the change last night and already appreciated doing it. (Hence
> > the excited "ooh this is awesome" post)
> >
> > I accidentally submitted a merge thinking I was merging to my
> > bruces-patched branch!
> > sorry, I cancelled it. (Hope that wasn't wrong of me)
> > I doubt my implementation is how you would do it.
> >
> > Respects
> > BruceS
> >
>
> As you said, the GUI component must remember the old window coordinates
> when the window is maximized (or made fullscreen, or any other state
> logically).
>
> It seems possible to do that.
>
> Regards,
>
> --
> Benoît Minisini.
>
I tried using the new property.
Changed the line 420 in Settings.class WriteWindow method..
If hWindow.Maximized Or If hWindow.FullScreen Then
aVal = [hWindow.Geometry.X, hWindow.Geometry.Y, hWindow.Geometry.W,
hWindow.Geometry.H, S, 1]
Else
aVal = [X, Y, W, H, S, 0]
Endif
But i found if maximized...
hWindow.Geometry.X is always 0
hWindow.Geometry.Y is always 32
hWindow.Geometry.W is 3px larger than normal W
hWindow.Geometry.H is 1px larger
Respects
BruceS
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20230121/19201d6f/attachment.htm>
More information about the User
mailing list