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 ff34e51826
commit 209407657d

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;