6c2dd5fc20
The content of this branch was automatically imported from Fedora ELN with the following as its source: https://src.fedoraproject.org/rpms/xorg-x11-server#eaf442296937a83e622ce4995c5f33122bcd6f02
58 lines
2.0 KiB
Diff
58 lines
2.0 KiB
Diff
From a090b038c45732676d9b7e367848d5bee7ab0ea5 Mon Sep 17 00:00:00 2001
|
|
From: Hans de Goede <hdegoede@redhat.com>
|
|
Date: Mon, 26 Aug 2019 12:26:34 +0200
|
|
Subject: [PATCH xserver 12/24] xwayland: xwl_window_should_enable_viewport:
|
|
Add extra test
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Games based on the allegro gaming library or on ClanLib-1.0 do not size
|
|
their window to match the fullscreen resolution, instead they use a
|
|
window covering the entire screen, drawing only the fullscreen resolution
|
|
part of it.
|
|
|
|
This commit adds a check for these games, so that we correctly apply a
|
|
viewport to them making fullscreen work properly for these games under
|
|
Xwayland.
|
|
|
|
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
|
|
Acked-by: Michel Dänzer <mdaenzer@redhat.com>
|
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
(cherry picked from commit 0c305dbff8a44f3fa3d6aefd372a967029a7a527)
|
|
---
|
|
hw/xwayland/xwayland.c | 17 +++++++++++++++++
|
|
1 file changed, 17 insertions(+)
|
|
|
|
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
|
index 9c6cf7cf5..2e01822fd 100644
|
|
--- a/hw/xwayland/xwayland.c
|
|
+++ b/hw/xwayland/xwayland.c
|
|
@@ -651,6 +651,23 @@ xwl_window_should_enable_viewport(struct xwl_window *xwl_window,
|
|
}
|
|
}
|
|
|
|
+ /* 2. Test if the window uses override-redirect + vidmode
|
|
+ * and matches (fully covers) the entire screen.
|
|
+ * This path gets hit by: allegro4, ClanLib-1.0.
|
|
+ */
|
|
+ xwl_output = xwl_screen_get_first_output(xwl_screen);
|
|
+ emulated_mode = xwl_output_get_emulated_mode_for_client(xwl_output, owner);
|
|
+ if (xwl_output && xwl_window->window->overrideRedirect &&
|
|
+ emulated_mode && emulated_mode->from_vidmode &&
|
|
+ xwl_window->x == 0 && xwl_window->y == 0 &&
|
|
+ xwl_window->width == xwl_screen->width &&
|
|
+ xwl_window->height == xwl_screen->height) {
|
|
+
|
|
+ *emulated_mode_ret = emulated_mode;
|
|
+ *xwl_output_ret = xwl_output;
|
|
+ return TRUE;
|
|
+ }
|
|
+
|
|
return FALSE;
|
|
}
|
|
|
|
--
|
|
2.26.2
|
|
|