GNOME Bugzilla – Bug 786772
Implement a new tiled mode for windows
Last modified: 2021-07-05 13:51:46 UTC
The patch series implements functions to create and manage windows in tiled mode where window is maximized in both direction, vertically and horizontally but with a free location.
Created attachment 358372 [details] [review] Add/implement meta_window_make_tiled_with_custom_position The new function meta_window_make_tiled_with_custom_position implement a new window state where the window is maximized in both direction, i.e. vertically and horizontally. The maximized window is not constrain by a monitor but is constrain by is unconstrained_rect. This function is useful for tilling window manager that need to place tiles.
Created attachment 358373 [details] [review] Add meta_window_is_tiled_with_custom_position function This function return if the window is in META_WINDOW_TILED_WITH_CUSTOM_POSITION state.
Created attachment 358374 [details] [review] Add meta_window_unmake_tiled_with_custom_position function The function meta_window_unmake_tiled_with_custom_position revert the state of the window to normal window, i.e. floating and unmaximized in both direction.
Hello, I tested the code at [1], which is my experimental compositor based on libmutter Best regards [1] https://github.com/gschwind/page-mutter-compositor/tree/implement-new-tile-mode
Created attachment 361553 [details] [review] Add/implement meta_window_make_tiled_with_custom_position The new function meta_window_make_tiled_with_custom_position implement a new window state where the window is maximized in both direction, i.e. vertically and horizontally. The maximized window is not constrain by a monitor but is constrain by is unconstrained_rect. This function is useful for tilling window manager that need to place tiles.
Created attachment 361554 [details] [review] Add meta_window_is_tiled_with_custom_position function This function return if the window is in META_WINDOW_TILED_WITH_CUSTOM_POSITION state.
Created attachment 361555 [details] [review] Add meta_window_unmake_tiled_with_custom_position function The function meta_window_unmake_tiled_with_custom_position revert the state of the window to normal window, i.e. floating and unmaximized in both direction.
Created attachment 361556 [details] [review] TILED_WITH_CUSTOM_POSITION: add edge constrains
Created attachment 361557 [details] [review] TILED_WITH_CUSTOM_POSITION: forbid frame resize
Created attachment 361558 [details] [review] TILED_WITH_CUSTOM_POSITION: make the frame look like mazimized
Hello, The last patch series is updated to current master, it's a refinement of previews patches. The current patch set do not maximize horizontally and vertically anymore, the meta_frame_get_flags take care properly of tiled_mode META_TILE_WITH_CUSTOM_POSITION. Best regards.
Created attachment 362406 [details] [review] Add/implement meta_window_make_tiled_with_custom_position The new function meta_window_make_tiled_with_custom_position implement a new window state where the window is maximized in both direction, i.e. vertically and horizontally. The maximized window is not constrain by a monitor but is constrain by is unconstrained_rect. This function is useful for tilling window manager that need to place tiles.
Created attachment 362407 [details] [review] Add meta_window_is_tiled_with_custom_position function This function return if the window is in META_WINDOW_TILED_WITH_CUSTOM_POSITION state.
Created attachment 362408 [details] [review] Add meta_window_unmake_tiled_with_custom_position function The function meta_window_unmake_tiled_with_custom_position revert the state of the window to normal window, i.e. floating and unmaximized in both direction.
Created attachment 362409 [details] [review] TILED_WITH_CUSTOM_POSITION: add edge constrains
Created attachment 362410 [details] [review] TILED_WITH_CUSTOM_POSITION: make the frame look like mazimized
Created attachment 362411 [details] [review] update constraint to apply aspect ratio TILED_WINDOW_WITH_CUSTOM_POSITION
Created attachment 362998 [details] [review] Implement META_TILE_TILED tile mode. This path define a new tile mode: META_TILE_TILED. A window in this mode cannot be moved or resized by the user. The frame look like maximized window, i.e. have square corners. The position of the window is define by meta_window_move_resize_frame and is always constrained inside the rectangle provide to meta_window_move_resize_frame. If needed the window is clipped. If the window has an aspect ratio, the constraint will respect this ratio and the window will be centered within the rectangle provide to meta_window_move_resize_frame.
Created attachment 362999 [details] [review] Implement META_TILE_TILED tile mode Hello, This patch merge all other patches and is a refinement of previews patch. In particular it implement a much better window constraint. I marked all other patches as obsolete. Best regards
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org. As part of that, we are mass-closing older open tickets in bugzilla.gnome.org which have not seen updates for a longer time (resources are unfortunately quite limited so not every ticket can get handled). If you can still reproduce the situation described in this ticket in a recent and supported software version, then please follow https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines and create a new ticket at https://gitlab.gnome.org/GNOME/mutter/-/issues/ Thank you for your understanding and your help.