diff options
author | Ray Strode <rstrode@redhat.com> | 2010-09-24 15:35:00 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2010-12-02 17:11:11 -0500 |
commit | 07c047190251e8e335119de8437ec09455cf3d58 (patch) | |
tree | 2547d561b30fc747642adb1a023f50a201f7885e /src/core/screen.c | |
parent | 5f4ee1b6e726660915d886c22a8c692dafd15c59 (diff) | |
download | mutter-07c047190251e8e335119de8437ec09455cf3d58.tar.gz |
tiling: Add new "maximized" tile
In addition to the existing side-by-side tiling modes, this commit
adds a new "maximize" tiling mode. It allows the user to maximize
their windows (in other words, tile with the edge panels) by dragging
their window to the top edge of the monitor.
https://bugzilla.gnome.org/show_bug.cgi?id=630548
Diffstat (limited to 'src/core/screen.c')
-rw-r--r-- | src/core/screen.c | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/core/screen.c b/src/core/screen.c index c3a4f03c3..1dbd982fa 100644 --- a/src/core/screen.c +++ b/src/core/screen.c @@ -1758,6 +1758,7 @@ meta_screen_tile_preview_update_timeout (gpointer data) MetaScreen *screen = data; MetaWindow *window = screen->display->grab_window; gboolean composited = screen->display->compositor != NULL; + gboolean needs_preview = FALSE; screen->tile_preview_timeout_id = 0; @@ -1775,9 +1776,28 @@ meta_screen_tile_preview_update_timeout (gpointer data) create_serial); } - if (window - && !META_WINDOW_TILED_SIDE_BY_SIDE (window) - && window->tile_mode != META_TILE_NONE) + if (window) + { + switch (window->tile_mode) + { + case META_TILE_LEFT: + case META_TILE_RIGHT: + if (!META_WINDOW_TILED_SIDE_BY_SIDE (window)) + needs_preview = TRUE; + break; + + case META_TILE_MAXIMIZED: + if (!META_WINDOW_MAXIMIZED (window)) + needs_preview = TRUE; + break; + + default: + needs_preview = FALSE; + break; + } + } + + if (needs_preview) { MetaRectangle tile_rect; |