Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: save window maximized state #536

Merged
merged 2 commits into from
Oct 18, 2023

Conversation

jarne
Copy link
Contributor

@jarne jarne commented Oct 11, 2023

Fix for #452 (comment): save if the window is maximized in the window state and maximize on start if it was before.

@jarne
Copy link
Contributor Author

jarne commented Oct 11, 2023

@martinsefcik it's working for me now on Ubuntu/macOS (but those ones also didn't save negative positions for me), I wasn't able to test on Windows as I don't have a Windows environment here. If you have some time, it'd be great if you could confirm the bug fixed.

@Its-treason
Copy link
Member

Its-treason commented Oct 11, 2023

Just tested it on Windows 11, works there too! Nice work!

Comment on lines 70 to 71
mainWindow.on('resize', () => saveBounds(mainWindow));
mainWindow.on('move', () => saveBounds(mainWindow));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would do small enhancement here

  mainWindow.on('resize', () => {
    if (!mainWindow.isMaximized()) { 
      saveBounds(mainWindow)
    }
  });
  mainWindow.on('move', () => {
    if (!mainWindow.isMaximized()) {
      saveBounds(mainWindow)
    }
  });

(probably some code cleanup would be fine to minimize duplicity in my snippet)

So window bounds would be saved only in case window is not maximized. And why?
Imagine case that you resize and move window to x=0, y=0, width=100, height=100. This bounds are saved. Then you maximize window. Maximation flag is saved, but also bounds are replaced with some values which are not important when window is maximized. Then you close app. After starting app again I would expect it starts as maximized, but in case I unmaximize it then bounds will be restored to x=0, y=0, width=100, height=100. If you apply my change then It will happen. If not then after unmaximize action window position is restored to default value because it has negative x, y values on Windows and on Linux and Mac (in case there are no negative values after maximize action) window position and size I guess would be very similar if not the same as when window is maximized.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your detailed explanation, makes absolutely sense, I'll change the implementation to work this way.

@jarne jarne marked this pull request as draft October 13, 2023 10:59
@jarne jarne marked this pull request as ready for review October 17, 2023 15:26
@helloanoop helloanoop merged commit ece5ad3 into usebruno:main Oct 18, 2023
@jarne jarne deleted the bugfix/bug-451-max-window-reset branch October 18, 2023 18:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants