GNOME Bugzilla – Bug 677565
Allow using <Super>+DownArrow to unmaximize/unsnap windows
Last modified: 2012-09-20 05:21:20 UTC
I just discovered that Super+up = maximize and Super+left/right snaps the window to the left or right edge. To be even more useful, perhaps Super+down could reset the window to the unmaximized, undocked state.
That's actually what <super>down does, see http://git.gnome.org/browse/gsettings-desktop-schemas/tree/schemas/org.gnome.desktop.wm.keybindings.gschema.xml.in.in#n154
Oh I see that it does unmaximize, but it does not un-snap-to-edge ie: undo Super+left/right). Could that be considered?
Sure, everything can be considered :-) The current behavior for restore is to restore the state the window had before maximization, e.g. either "normal" or "tiled". The rational was more or less that if you have a tiled window and hit the maximize button twice, it would be weird to end up with a "normal" window rather than a tiled one. Of course that was when we stilled had a maximize button in the default configuration, so it might indeed be worth to reconsider.
*** Bug 679314 has been marked as a duplicate of this bug. ***
I agree that it would be nice to have Super-Down go to unmaximized
There's also the case of hitting <Super>Right, and then <Super>Left. We should try to restore the state that was there before, rather than tiling to the left. Additionally, Windows 7 has a good behavior for multiple monitors: With two monitors side by side, and an unmaximized window on the left-hand one, hitting <Super>Right will toggle to the right side of the monitor. Hitting <Super>Right again will make it tile the *left* side of the monitor on the right. Hitting it again will make it unmaximized on the right-hand monitor, and then again will tile it to the right. Hitting it again will wrap around. So the set of states is: [ Left Monitor Tile Left, Left Monitor Umaximized, Left Monitor Tile Right, Right Monitor Tile Left, Right Monitor Umaximized, Right Monitor Tile Right]
Created attachment 217955 [details] [review] window: Do not restore tiling on unmaximize When we consider tiling a special case of maximization, it makes more sense to always unmaximize to the normal state rather than restoring a previous tile state.
(In reply to comment #6) > There's also the case of hitting <Super>Right, and then <Super>Left. We should > try to restore the state that was there before, rather than tiling to the left. Mmh, I remember this being discussed at some point and considered confusing.
Review of attachment 217955 [details] [review]: Looks good. Is there a reason we store tile_mode independently of maximization state now, then?
Florian, do you want to push this?
Attachment 217955 [details] pushed as 10d53fc - window: Do not restore tiling on unmaximize I was hoping for design input, but well ... let's just go with this for now :-)
*** Bug 683750 has been marked as a duplicate of this bug. ***
FWIW, I found one more issue: If you have two monitors, then I would expect if a window is on the left most window that <super>+right twice would first tile it on the right hand side of the left window, and then on the second press it would get tiled on the right hand side of the right window. Maybe this would be something useful to add. Thank you for your consideration, James
(In reply to comment #13) > FWIW, I found one more issue: If you have two monitors, then I would expect if > a window is on the left most window that <super>+right twice would first tile > it on the right hand side of the left window, and then on the second press it > would get tiled on the right hand side of the right window. I think you're mixing up your "window"s and "monitor"s, there.
(In reply to comment #14) > (In reply to comment #13) > > FWIW, I found one more issue: If you have two monitors, then I would expect if > > a window is on the left most window that <super>+right twice would first tile > > it on the right hand side of the left window, and then on the second press it > > would get tiled on the right hand side of the right window. > > I think you're mixing up your "window"s and "monitor"s, there. Man is it that time of the day already? yup sorry! Corrected text should read: FWIW, I found one more issue: If you have two monitors, then I would expect if a window is on the left most monitor that <super>+right twice would first tile it on the right hand side of the left monitor, and then on the second press it would get tiled on the right hand side of the right monitor. Thanks for the catch Jasper!