From a87157176ca6e01c8c4047999ee584f00b63c11e Mon Sep 17 00:00:00 2001 From: Stefano Karapetsas Date: Fri, 31 May 2013 16:22:39 +0200 Subject: Implement side-by-side tiling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Patch by Florian Müllner for Metacity https://bugzilla.gnome.org/show_bug.cgi?id=607694 When dragging a window over a screen edge and dropping it there, maximize it vertically and scale it horizontally to cover the corresponding half of the current monitor. Whenever a "hot area" which triggers this behavior is entered, an indication of window's target size is displayed after a short delay to avoid distraction when moving a window between monitors. --- src/core/prefs.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/core/prefs.c') diff --git a/src/core/prefs.c b/src/core/prefs.c index 116a9bb8..5f46b554 100644 --- a/src/core/prefs.c +++ b/src/core/prefs.c @@ -117,6 +117,7 @@ static gboolean compositing_fast_alt_tab = FALSE; static gboolean resize_with_right_button = FALSE; static gboolean center_new_windows = FALSE; static gboolean force_fullscreen = TRUE; +static gboolean side_by_side_tiling = FALSE; static MetaVisualBellType visual_bell_type = META_VISUAL_BELL_FULLSCREEN_FLASH; static MetaButtonLayout button_layout; @@ -401,6 +402,12 @@ static MetaBoolPreference preferences_bool[] = ¢er_new_windows, FALSE, }, + { "side-by-side-tiling", + KEY_GENERAL_SCHEMA, + META_PREF_SIDE_BY_SIDE_TILING, + &side_by_side_tiling, + FALSE, + }, { NULL, NULL, 0, NULL, FALSE }, }; @@ -1545,6 +1552,9 @@ meta_preference_to_string (MetaPreference pref) case META_PREF_FORCE_FULLSCREEN: return "FORCE_FULLSCREEN"; + + case META_PREF_SIDE_BY_SIDE_TILING: + return "SIDE_BY_SIDE_TILING"; } return "(unknown)"; @@ -2202,6 +2212,12 @@ meta_prefs_get_center_new_windows (void) return center_new_windows; } +gboolean +meta_prefs_get_side_by_side_tiling () +{ + return side_by_side_tiling; +} + guint meta_prefs_get_mouse_button_resize (void) { -- cgit v1.2.1