window: Maximize tiled windows when resizing to work area

Now that tiled windows are resizable, the user may grow a tiled
windows until it covers the entire work area. As this makes the
window state mostly indistinguishable from maximization, avoid
subtle differences by properly maximizing the window in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=645153
This commit is contained in:
Georges Basile Stavracas Neto 2017-06-11 14:58:21 -03:00
parent 00a5db71cf
commit 57e58eaf2a

View File

@ -6147,6 +6147,24 @@ update_resize (MetaWindow *window,
g_get_current_time (&window->display->grab_last_moveresize_time);
}
static void
maybe_maximize_tiled_window (MetaWindow *window)
{
MetaRectangle work_area;
gint shake_threshold;
if (!META_WINDOW_TILED_SIDE_BY_SIDE (window))
return;
shake_threshold = meta_prefs_get_drag_threshold ();
meta_window_get_work_area_for_monitor (window,
window->tile_monitor_number,
&work_area);
if (window->rect.width >= work_area.width - shake_threshold)
meta_window_maximize (window, META_MAXIMIZE_BOTH);
}
void
meta_window_update_resize (MetaWindow *window,
gboolean snap,
@ -6190,6 +6208,7 @@ end_grab_op (MetaWindow *window,
modifiers & CLUTTER_SHIFT_MASK,
x, y,
TRUE);
maybe_maximize_tiled_window (window);
}
}
window->screen->preview_tile_mode = META_TILE_NONE;