wayland/xdg-shell: Do not maximize if not possible

On X11, if a window cannot be maximized because its minimum size is
already larger than the output size, a request to maximize will be
ignored.

On Wayland, however, we would still honor the maximize request and
switch the window state to maximized, without actually moving the window
which leads to weird visual effects, as the window end up being
maximized in-place.

To avoid this, make sure the window has the maximize functionality
available prior to change its state in xdg-shell `set_maximized`
request.

Closes: https://gitlab.gnome.org/GNOME/mutter/issues/463
This commit is contained in:
Olivier Fourdan 2019-02-15 09:31:04 +01:00
parent c3b9ef7bf5
commit 6fe46cac60
2 changed files with 6 additions and 0 deletions

View File

@ -397,6 +397,9 @@ zxdg_toplevel_v6_set_maximized (struct wl_client *client,
if (!window) if (!window)
return; return;
if (!window->has_maximize_func)
return;
meta_window_force_placement (window, TRUE); meta_window_force_placement (window, TRUE);
meta_window_maximize (window, META_MAXIMIZE_BOTH); meta_window_maximize (window, META_MAXIMIZE_BOTH);
} }

View File

@ -393,6 +393,9 @@ xdg_toplevel_set_maximized (struct wl_client *client,
if (!window) if (!window)
return; return;
if (!window->has_maximize_func)
return;
meta_window_force_placement (window, TRUE); meta_window_force_placement (window, TRUE);
meta_window_maximize (window, META_MAXIMIZE_BOTH); meta_window_maximize (window, META_MAXIMIZE_BOTH);
} }