[Feature Request for Material Shell ] New MetaWindow method to make them fill an Area
Feature summary
As Material Shell, we are trying to provide tiling capabilities to GNOME Shell.
We Currently heavily rely on metaWindow.move_resize_frame
to manipulate the windows position and size.
While it was nice for a proof of concept it's not ideal for three reasons:
- Windows size hinting: Because some windows prefer adjust their size independently of what we asked (Like Gnome Terminal preferring it's size related to the font size). We would prefer force them to correctly fill the providing area.
- Windows decoration: In order to provide a clean tiling capabilities we ran into another issue: the window decoration. When we tile windows side by side windows we would prefer them to not have decorations.
- Title bars: In some case and in order to maximize the screen reel estate we would like to be able to hide the titlebars of the windows while tiling them.
I know that you are aware of theses concern because the metaWindow.maximize
method already take care of concerns 1. & 2. but only in a predefined sizes (Full workArea or workArea splitted in half).
For the last concern I know it's tricky because in wayland title bars are on the client side BUT i have noticed that they are always hidden when the metaWindow
is in fullscreen state
How would you like it to work
My proposal would be to add a new method:
metaWindow.fill_area(
x: int,
y: int,
width: int,
height: int,
fillMode: FILL_MODE)
FILL_MODE: Enum {
NORMAL: 0,
MAXIMIZE: 1,
FULLSCREEN: 2
}
The idea would be to fill the window to the position and size provided in the given state (Normal: decorated, Maximized or fullscreen: but not "Fullscreen")