[mutter] wayland/xdg-shell: Do not maximize if not possible
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] wayland/xdg-shell: Do not maximize if not possible
- Date: Fri, 15 Feb 2019 09:13:53 +0000 (UTC)
commit 6fe46cac60c95e17dd5cd8c7b11aecfe1da5a18c
Author: Olivier Fourdan <ofourdan redhat com>
Date: Fri Feb 15 09:31:04 2019 +0100
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
src/wayland/meta-wayland-legacy-xdg-shell.c | 3 +++
src/wayland/meta-wayland-xdg-shell.c | 3 +++
2 files changed, 6 insertions(+)
---
diff --git a/src/wayland/meta-wayland-legacy-xdg-shell.c b/src/wayland/meta-wayland-legacy-xdg-shell.c
index 504b34ffd..1523481d4 100644
--- a/src/wayland/meta-wayland-legacy-xdg-shell.c
+++ b/src/wayland/meta-wayland-legacy-xdg-shell.c
@@ -397,6 +397,9 @@ zxdg_toplevel_v6_set_maximized (struct wl_client *client,
if (!window)
return;
+ if (!window->has_maximize_func)
+ return;
+
meta_window_force_placement (window, TRUE);
meta_window_maximize (window, META_MAXIMIZE_BOTH);
}
diff --git a/src/wayland/meta-wayland-xdg-shell.c b/src/wayland/meta-wayland-xdg-shell.c
index c7e738357..afd4bb94b 100644
--- a/src/wayland/meta-wayland-xdg-shell.c
+++ b/src/wayland/meta-wayland-xdg-shell.c
@@ -393,6 +393,9 @@ xdg_toplevel_set_maximized (struct wl_client *client,
if (!window)
return;
+ if (!window->has_maximize_func)
+ return;
+
meta_window_force_placement (window, TRUE);
meta_window_maximize (window, META_MAXIMIZE_BOTH);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]