[Gambas-user] Settings.Write(MyForm) could it only update pos/size if not maximized?

Bruce Steers bsteers4 at gmail.com
Fri Jan 20 02:29:46 CET 2023

On Fri, 20 Jan 2023 at 00:28, Bruce Steers <bsteers4 at gmail.com> wrote:

> 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

I modded line 420 in Settings.class
it was...
    aVal = [X, Y, W, H, S, If(hWindow.Maximized, 1, 0)]

I changed to...

  If hWindow.Maximized And If Me[sKey &/ "Geometry"]
    aVal = Me[sKey &/ "Geometry"]
    aVal[4] = S
    aVal[5] = 1
    aVal = [X, Y, W, H, S, If(hWindow.Maximized, 1, 0)]

Seems to work a treat.
(i'm probably missing something though, maybe a flaw if S has changed?)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20230120/6872a713/attachment-0001.htm>

More information about the User mailing list