automaximize: Make it optional

Make automaximize optional by adding a gsetting "auto-maximize"
(defaults to true).

https://bugzilla.gnome.org/show_bug.cgi?id=680990
This commit is contained in:
Adel Gadllah 2012-09-08 11:34:27 +02:00
parent a91eeb24d4
commit 2a2ac52726
4 changed files with 30 additions and 2 deletions

View File

@ -99,6 +99,7 @@ static gboolean resize_with_right_button = FALSE;
static gboolean edge_tiling = FALSE;
static gboolean force_fullscreen = TRUE;
static gboolean ignore_request_hide_titlebar = FALSE;
static gboolean auto_maximize = TRUE;
static GDesktopVisualBellType visual_bell_type = G_DESKTOP_VISUAL_BELL_FULLSCREEN_FLASH;
static MetaButtonLayout button_layout;
@ -368,6 +369,13 @@ static MetaBoolPreference preferences_bool[] =
},
&no_tab_popup,
},
{
{ "auto-maximize",
SCHEMA_MUTTER,
META_PREF_AUTO_MAXIMIZE,
},
&auto_maximize,
},
{ { NULL, 0, 0 }, NULL },
};
@ -1666,6 +1674,9 @@ meta_preference_to_string (MetaPreference pref)
case META_PREF_DYNAMIC_WORKSPACES:
return "DYNAMIC_WORKSPACES";
case META_PREF_AUTO_MAXIMIZE:
return "AUTO_MAXIMIZE";
}
return "(unknown)";
@ -2091,6 +2102,12 @@ meta_prefs_get_edge_tiling ()
return edge_tiling;
}
gboolean
meta_prefs_get_auto_maximize (void)
{
return auto_maximize;
}
MetaKeyBindingAction
meta_prefs_get_keybinding_action (const char *name)
{

View File

@ -3020,7 +3020,7 @@ meta_window_show (MetaWindow *window)
if (!window->placed)
{
if (window->showing_for_first_time && window->has_maximize_func)
if (meta_prefs_get_auto_maximize() && window->showing_for_first_time && window->has_maximize_func)
{
MetaRectangle work_area;
meta_window_get_work_area_for_monitor (window, window->monitor->number, &work_area);

View File

@ -67,7 +67,8 @@ typedef enum
META_PREF_FORCE_FULLSCREEN,
META_PREF_WORKSPACES_ONLY_ON_PRIMARY,
META_PREF_NO_TAB_POPUP,
META_PREF_DRAGGABLE_BORDER_WIDTH
META_PREF_DRAGGABLE_BORDER_WIDTH,
META_PREF_AUTO_MAXIMIZE
} MetaPreference;
typedef void (* MetaPrefsChangedFunc) (MetaPreference pref,
@ -105,6 +106,7 @@ gboolean meta_prefs_get_focus_change_on_pointer_rest (void);
gboolean meta_prefs_get_gnome_accessibility (void);
gboolean meta_prefs_get_gnome_animations (void);
gboolean meta_prefs_get_edge_tiling (void);
gboolean meta_prefs_get_auto_maximize (void);
void meta_prefs_get_button_layout (MetaButtonLayout *button_layout);

View File

@ -84,6 +84,15 @@
</_description>
</key>
<key name="auto-maximize" type="b">
<default>true</default>
<_summary>Auto maximize nearly monitor sized windows</_summary>
<_description>
If enabled, monitor nearly monitor sized windows automatically get
maximized when mapped.
</_description>
</key>
<child name="keybindings" schema="org.gnome.mutter.keybindings"/>
</schema>