Opened 2 years ago

Last modified 19 months ago

#17446 new enhancement

About window does not remember its last position

Reported by: bruno Owned by: nobody
Priority: low Milestone: Unscheduled
Component: Applications/AboutSystem Version: R1/beta3
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description (last modified by bruno)

EDIT: The AboutSystem Window does not remember its last position and size!

Change History (12)

comment:1 by diver, 2 years ago

Component: - GeneralApplications/AboutSystem

Why should it?

comment:2 by bitigchi, 2 years ago

I guess every application should remember its last closed position. It's the requirement of being a spatial desktop system after all.

comment:3 by humdinger, 2 years ago

Not sure it's a requirement for being spatial. In any case, I think the About window is opened quite infrequently, and other than with apps you actually do some kind of work with, it doesn't matter if it opens at the same position it did a week ago. I rather have oe less "_settings" file in ~/config/settings...

comment:4 by bruno, 19 months ago

Description: modified (diff)

It is annoying to have the window open in the middle of the desktop! On most upper top I would prefer it! Otherwise to have tabs on the windows makes no sense! same to the size of the window! At least there is now the about window replicant which makes it possible to resize and move! If all windows would be able to save its position one can easily arrange the windows on the desktop and make use of the tabs Haiku windows have!

comment:5 by jscipione, 19 months ago

I apologize if I accidentally broke this feature while adding the replicant… but I don’t think I did. I would be ok with AboutSystem remembering its size and position on screen with the condition that it must also be able to detect that the window position is off-screen and reposition itself back on screen for instance because the user reduced their screen resolution between launches.

comment:6 by bruno, 19 months ago

You did not broke this feature, because it was never there!

The replicant is great idea and works nice on 64bit, only it needs to be update the hrev. automatically which does not happen now.

On 32bit the window will grow with every second, maybe some kind of <br>? No idea.

With the replicant I do not have to open the AboutSystem every time I need to check my hrev. version. And yes it is AboutSystem not AboutWindow, sorry!

comment:7 by bruno, 19 months ago

Description: modified (diff)

in reply to:  5 comment:8 by bipolar, 19 months ago

Replying to jscipione:

[...] it must also be able to detect that the window position is off-screen and reposition itself back on screen for instance because the user reduced their screen resolution between launches.

I would like to see this be the standard behavior for any window, so... a job the app_server should take care of, I guess? [1]

I get bitten by this regularly when using the same install on both bare-metal (at 1920x1080), and under a VM (at 1360x768, so I can have some screen-space for the host system).

Slightly annoying when a window is almost off-screen... really annoying when it ends completely off-screen.

Tracker should also relocate replicants residing ton the desktop if they would end up off-screen.

[1] With the possible exception of using "Virtual Resolution", if we support those... I remember that on BeOS you could set a resolution higher than the physical one, and it would scroll around as you moved the mouse pointer against the screen borders.

Last edited 19 months ago by bipolar (previous) (diff)

comment:9 by jscipione, 19 months ago

We’re already doing a similar thing in BWindow https://git.haiku-os.org/haiku/tree/src/kits/interface/Window.cpp#n3580 and we could implement the ScreenChanged (and WorkspacesChanged?) method to check if the window is off screen and move it back on screen, if desired.

comment:10 by jscipione, 19 months ago

To put a window back on-screen Call MoveOnScreen() https://git.haiku-os.org/haiku/tree/src/kits/interface/Window.cpp#n2500 in ScreenChanged() https://git.haiku-os.org/haiku/tree/src/kits/interface/Window.cpp#n1645 but we'd have to document that and not all derived windows will call that method so it won't work all the time. You could get around this by adding MoveOnScreen() to the B_SCREEN_CHANGED method instead https://git.haiku-os.org/haiku/tree/src/kits/interface/Window.cpp#n1110 but that is a little hacky. Of course that still wouldn't fix Replicants from going off-screen but you could also do a similar thing by iterating through the replicant views and moving them back on-screen here https://git.haiku-os.org/haiku/tree/src/kits/tracker/DeskWindow.cpp#n566

comment:11 by jscipione, 19 months ago

As far as remembering the About System window position and size the implementation is pretty simple and is already being done by other apps usually through a settings file under ~/config/settings because there isn't another good place to store that kind of information.

comment:12 by bruno, 19 months ago

Having now the replicant this option might be obsolete?

Note: See TracTickets for help on using tickets.