!11 xorg-x11-server: Update to 1.20.8
Merge pull request !11 from chengguipeng_xian/master
This commit is contained in:
commit
3308d86bad
@ -1,42 +0,0 @@
|
||||
From 0ad717edcf372425ddf2ba9926857419ab62f4f5 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Wed, 29 May 2019 16:19:55 +1000
|
||||
Subject: [PATCH xserver] Xi: return AlreadyGrabbed for key grabs > 255
|
||||
|
||||
We can't have high keycodes because everything in XKB relies on 8 bits. XI2's
|
||||
API allows for 32-bit keycodes so we have to take those but nothing in the
|
||||
server is really ready for this. The effect of this right now is that any high
|
||||
keycode grab is clipped to 255 and thus ends up grabbing a different key
|
||||
instead.
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1697804
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
Xi/xipassivegrab.c | 10 ++++++++--
|
||||
1 file changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Xi/xipassivegrab.c b/Xi/xipassivegrab.c
|
||||
index 65d5870f6..d30f51f3c 100644
|
||||
--- a/Xi/xipassivegrab.c
|
||||
+++ b/Xi/xipassivegrab.c
|
||||
@@ -203,8 +203,14 @@ ProcXIPassiveGrabDevice(ClientPtr client)
|
||||
¶m, XI2, &mask);
|
||||
break;
|
||||
case XIGrabtypeKeycode:
|
||||
- status = GrabKey(client, dev, mod_dev, stuff->detail,
|
||||
- ¶m, XI2, &mask);
|
||||
+ /* XI2 allows 32-bit keycodes but thanks to XKB we can never
|
||||
+ * implement this. Just return an error for all keycodes that
|
||||
+ * cannot work anyway */
|
||||
+ if (stuff->detail > 255)
|
||||
+ status = XIAlreadyGrabbed;
|
||||
+ else
|
||||
+ status = GrabKey(client, dev, mod_dev, stuff->detail,
|
||||
+ ¶m, XI2, &mask);
|
||||
break;
|
||||
case XIGrabtypeEnter:
|
||||
case XIGrabtypeFocusIn:
|
||||
--
|
||||
2.21.0
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 7d403201820fb2bdc04bfa8f83c9dd3822c6abda Mon Sep 17 00:00:00 2001
|
||||
From e78e96157efb523272404a85a9433c7b9803c1db Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Thu, 29 Aug 2019 14:18:28 +0200
|
||||
Subject: [PATCH xserver 01/14] dix: Add GetCurrentClient helper
|
||||
Subject: [PATCH xserver 01/24] dix: Add GetCurrentClient helper
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -43,13 +43,14 @@ to RRSetCrtc).
|
||||
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
(cherry picked from commit 834a467af978ac7a24ed17b8c8e58b6cddb4faf9)
|
||||
---
|
||||
dix/dispatch.c | 23 ++++++++++++++++++++++-
|
||||
include/dix.h | 1 +
|
||||
2 files changed, 23 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dix/dispatch.c b/dix/dispatch.c
|
||||
index 176c7a0dd..ce84e6c8c 100644
|
||||
index a33bfaa9e..2b1cf1a74 100644
|
||||
--- a/dix/dispatch.c
|
||||
+++ b/dix/dispatch.c
|
||||
@@ -148,6 +148,7 @@ xConnSetupPrefix connSetupPrefix;
|
||||
@ -111,5 +112,5 @@ index b6e2bcfde..d65060cb6 100644
|
||||
extern _X_EXPORT void SetInputCheck(HWEventQueuePtr /*c0 */ ,
|
||||
HWEventQueuePtr /*c1 */ );
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From f473d009dba1029658f6c3fb5751fbbf027ed468 Mon Sep 17 00:00:00 2001
|
||||
From c0981af6a683266e3f2adfdd7d6539104f502233 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@posteo.de>
|
||||
Date: Mon, 22 Jan 2018 22:02:32 +0100
|
||||
Subject: [PATCH xserver 02/14] xwayland: Add wp_viewport wayland extension
|
||||
Subject: [PATCH xserver 02/24] xwayland: Add wp_viewport wayland extension
|
||||
support
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
@ -18,12 +18,13 @@ xrandr for apps which want to change the resolution when going fullscreen.
|
||||
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 47bba4625339592d08b375bcd8e51029c0000850)
|
||||
---
|
||||
hw/xwayland/Makefile.am | 9 ++++++++-
|
||||
hw/xwayland/meson.build | 3 +++
|
||||
hw/xwayland/xwayland.c | 3 +++
|
||||
hw/xwayland/xwayland.h | 2 ++
|
||||
5 files changed, 24 insertions(+), 1 deletion(-)
|
||||
4 files changed, 16 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hw/xwayland/Makefile.am b/hw/xwayland/Makefile.am
|
||||
index bc1cb8506..49aae3d8b 100644
|
||||
@ -80,10 +81,10 @@ index 36bf2133a..4a8d171bb 100644
|
||||
xwayland_glamor = []
|
||||
eglstream_srcs = []
|
||||
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||
index baa08d87b..292f239e8 100644
|
||||
index ed9f2e3c2..2084f2afb 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -863,6 +863,9 @@ registry_global(void *data, struct wl_registry *registry, uint32_t id,
|
||||
@@ -923,6 +923,9 @@ registry_global(void *data, struct wl_registry *registry, uint32_t id,
|
||||
wl_registry_bind(registry, id, &zxdg_output_manager_v1_interface, 1);
|
||||
xwl_screen_init_xdg_output(xwl_screen);
|
||||
}
|
||||
@ -94,7 +95,7 @@ index baa08d87b..292f239e8 100644
|
||||
else if (xwl_screen->glamor) {
|
||||
xwl_glamor_init_wl_registry(xwl_screen, registry, id, interface,
|
||||
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h
|
||||
index 0854df456..c4eabe4c3 100644
|
||||
index daa719209..f949ea157 100644
|
||||
--- a/hw/xwayland/xwayland.h
|
||||
+++ b/hw/xwayland/xwayland.h
|
||||
@@ -48,6 +48,7 @@
|
||||
@ -114,5 +115,5 @@ index 0854df456..c4eabe4c3 100644
|
||||
|
||||
#define XWL_FORMAT_ARGB8888 (1 << 0)
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 0356eff57bc1201e2bcd5fdd363a50ceabc4a4fa Mon Sep 17 00:00:00 2001
|
||||
From ce5eef7d33d7ba37cabee6b2bb020ed62abe6208 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@posteo.de>
|
||||
Date: Tue, 2 Jul 2019 12:03:12 +0200
|
||||
Subject: [PATCH xserver 03/14] xwayland: Use buffer_damage instead of surface
|
||||
Subject: [PATCH xserver 03/24] xwayland: Use buffer_damage instead of surface
|
||||
damage if available
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
@ -25,6 +25,7 @@ Changes by Hans de Goede <hdegoede@redhat.com>:
|
||||
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 7c6f17790d3aedb164481264b0f05a8a14103731)
|
||||
---
|
||||
hw/xwayland/xwayland-cursor.c | 12 ++++++------
|
||||
hw/xwayland/xwayland-present.c | 6 +++---
|
||||
@ -63,11 +64,11 @@ index 66720bcc0..cbc715061 100644
|
||||
xwl_cursor->frame_cb = wl_surface_frame(xwl_cursor->surface);
|
||||
wl_callback_add_listener(xwl_cursor->frame_cb, &frame_listener, xwl_cursor);
|
||||
diff --git a/hw/xwayland/xwayland-present.c b/hw/xwayland/xwayland-present.c
|
||||
index 2937d9c97..df771c30f 100644
|
||||
index 5ba7dce08..58c32941d 100644
|
||||
--- a/hw/xwayland/xwayland-present.c
|
||||
+++ b/hw/xwayland/xwayland-present.c
|
||||
@@ -500,9 +500,9 @@ xwl_present_flip(WindowPtr present_window,
|
||||
xwl_present_window->frame_timer_firing = FALSE;
|
||||
@@ -495,9 +495,9 @@ xwl_present_flip(WindowPtr present_window,
|
||||
/* Realign timer */
|
||||
xwl_present_reset_timer(xwl_present_window);
|
||||
|
||||
- wl_surface_damage(xwl_window->surface, 0, 0,
|
||||
@ -80,10 +81,10 @@ index 2937d9c97..df771c30f 100644
|
||||
wl_surface_commit(xwl_window->surface);
|
||||
|
||||
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||
index 292f239e8..8b1c7918a 100644
|
||||
index 2084f2afb..942981834 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -759,6 +759,16 @@ xwl_destroy_window(WindowPtr window)
|
||||
@@ -803,6 +803,16 @@ xwl_destroy_window(WindowPtr window)
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -100,7 +101,7 @@ index 292f239e8..8b1c7918a 100644
|
||||
static void
|
||||
xwl_window_post_damage(struct xwl_window *xwl_window)
|
||||
{
|
||||
@@ -795,13 +805,15 @@ xwl_window_post_damage(struct xwl_window *xwl_window)
|
||||
@@ -839,13 +849,15 @@ xwl_window_post_damage(struct xwl_window *xwl_window)
|
||||
*/
|
||||
if (RegionNumRects(region) > 256) {
|
||||
box = RegionExtents(region);
|
||||
@ -120,8 +121,8 @@ index 292f239e8..8b1c7918a 100644
|
||||
+ }
|
||||
}
|
||||
|
||||
xwl_window->frame_callback = wl_surface_frame(xwl_window->surface);
|
||||
@@ -844,8 +856,13 @@ registry_global(void *data, struct wl_registry *registry, uint32_t id,
|
||||
xwl_window_create_frame_callback(xwl_window);
|
||||
@@ -904,8 +916,13 @@ registry_global(void *data, struct wl_registry *registry, uint32_t id,
|
||||
struct xwl_screen *xwl_screen = data;
|
||||
|
||||
if (strcmp(interface, "wl_compositor") == 0) {
|
||||
@ -137,11 +138,11 @@ index 292f239e8..8b1c7918a 100644
|
||||
else if (strcmp(interface, "wl_shm") == 0) {
|
||||
xwl_screen->shm = wl_registry_bind(registry, id, &wl_shm_interface, 1);
|
||||
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h
|
||||
index c4eabe4c3..3e973d688 100644
|
||||
index f949ea157..fa78b5ab9 100644
|
||||
--- a/hw/xwayland/xwayland.h
|
||||
+++ b/hw/xwayland/xwayland.h
|
||||
@@ -381,6 +381,9 @@ struct xwl_output {
|
||||
};
|
||||
@@ -382,6 +382,9 @@ struct xwl_output {
|
||||
void xwl_window_create_frame_callback(struct xwl_window *xwl_window);
|
||||
|
||||
void xwl_sync_events (struct xwl_screen *xwl_screen);
|
||||
+void xwl_surface_damage(struct xwl_screen *xwl_screen,
|
||||
@ -151,5 +152,5 @@ index c4eabe4c3..3e973d688 100644
|
||||
Bool xwl_screen_init_cursor(struct xwl_screen *xwl_screen);
|
||||
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 873a7d2164c08ddf57e88095b34bbec092f28d31 Mon Sep 17 00:00:00 2001
|
||||
From 6ff9bf9f005ce81b587d3b4345232c73fc12da53 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Wed, 26 Jun 2019 16:46:54 +0200
|
||||
Subject: [PATCH xserver 04/14] xwayland: Add fake output modes to xrandr
|
||||
Subject: [PATCH xserver 04/24] xwayland: Add fake output modes to xrandr
|
||||
output mode lists
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
@ -17,6 +17,7 @@ WPviewport to scale there pixmap to cover the entire output.
|
||||
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 0d656d796071fb637e4969ea800855fe5d1c9728)
|
||||
---
|
||||
hw/xwayland/xwayland-output.c | 112 ++++++++++++++++++++++++++++++++--
|
||||
hw/xwayland/xwayland.c | 17 ++++++
|
||||
@ -162,10 +163,10 @@ index aa6f37864..2ccc3ca60 100644
|
||||
xorg_list_for_each_entry(it, &xwl_screen->output_list, link) {
|
||||
/* output done event is sent even when some property
|
||||
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||
index 8b1c7918a..a599c022a 100644
|
||||
index 942981834..3c50396f1 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -139,6 +139,23 @@ xwl_screen_get(ScreenPtr screen)
|
||||
@@ -152,6 +152,23 @@ xwl_screen_get(ScreenPtr screen)
|
||||
return dixLookupPrivate(&screen->devPrivates, &xwl_screen_private_key);
|
||||
}
|
||||
|
||||
@ -190,10 +191,10 @@ index 8b1c7918a..a599c022a 100644
|
||||
xwl_window_set_allow_commits(struct xwl_window *xwl_window, Bool allow,
|
||||
const char *debug_msg)
|
||||
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h
|
||||
index 3e973d688..0fafc07a6 100644
|
||||
index fa78b5ab9..c66997f00 100644
|
||||
--- a/hw/xwayland/xwayland.h
|
||||
+++ b/hw/xwayland/xwayland.h
|
||||
@@ -388,6 +388,7 @@ void xwl_surface_damage(struct xwl_screen *xwl_screen,
|
||||
@@ -389,6 +389,7 @@ void xwl_surface_damage(struct xwl_screen *xwl_screen,
|
||||
Bool xwl_screen_init_cursor(struct xwl_screen *xwl_screen);
|
||||
|
||||
struct xwl_screen *xwl_screen_get(ScreenPtr screen);
|
||||
@ -202,5 +203,5 @@ index 3e973d688..0fafc07a6 100644
|
||||
void xwl_tablet_tool_set_cursor(struct xwl_tablet_tool *tool);
|
||||
void xwl_seat_set_cursor(struct xwl_seat *xwl_seat);
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 81ff61afd6594e0cf00f4be7ff34f94cd9e8f9b0 Mon Sep 17 00:00:00 2001
|
||||
From d837f7003d22c5e0d5bd05d41e872e7ee331dfa4 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@posteo.de>
|
||||
Date: Mon, 22 Jan 2018 17:57:38 +0100
|
||||
Subject: [PATCH xserver 05/14] xwayland: Use RandR 1.2 interface (rev 2)
|
||||
Subject: [PATCH xserver 05/24] xwayland: Use RandR 1.2 interface (rev 2)
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -23,6 +23,7 @@ was set.
|
||||
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 e89872f51aa834fa9d94a4ca4822f03b0341ab4f)
|
||||
---
|
||||
hw/xwayland/xwayland-output.c | 81 +++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 81 insertions(+)
|
||||
@ -134,5 +135,5 @@ index 2ccc3ca60..67e99bdab 100644
|
||||
return TRUE;
|
||||
}
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 1dc4938467b6338695eda4224f0b0c592cb2c25c Mon Sep 17 00:00:00 2001
|
||||
From 80ca38c4428a499a795084dc696c390b707749b9 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Thu, 29 Aug 2019 22:45:12 +0200
|
||||
Subject: [PATCH xserver 06/14] xwayland: Add per client private data
|
||||
Subject: [PATCH xserver 06/24] xwayland: Add per client private data
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -14,16 +14,17 @@ change emulation.
|
||||
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 905cb8b9e27add5f49a45fe167a0005bf05218bc)
|
||||
---
|
||||
hw/xwayland/xwayland.c | 14 ++++++++++++++
|
||||
hw/xwayland/xwayland.h | 5 +++++
|
||||
2 files changed, 19 insertions(+)
|
||||
|
||||
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||
index a599c022a..2b6065f1a 100644
|
||||
index 3c50396f1..b0e37ceb9 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -122,11 +122,18 @@ ddxProcessArgument(int argc, char *argv[], int i)
|
||||
@@ -135,11 +135,18 @@ ddxProcessArgument(int argc, char *argv[], int i)
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -42,7 +43,7 @@ index a599c022a..2b6065f1a 100644
|
||||
static struct xwl_window *
|
||||
xwl_window_get(WindowPtr window)
|
||||
{
|
||||
@@ -1083,6 +1090,13 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
|
||||
@@ -1143,6 +1150,13 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
|
||||
return FALSE;
|
||||
if (!dixRegisterPrivateKey(&xwl_damage_private_key, PRIVATE_WINDOW, 0))
|
||||
return FALSE;
|
||||
@ -57,21 +58,23 @@ index a599c022a..2b6065f1a 100644
|
||||
dixSetPrivate(&pScreen->devPrivates, &xwl_screen_private_key, xwl_screen);
|
||||
xwl_screen->screen = pScreen;
|
||||
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h
|
||||
index 0fafc07a6..17018fcf5 100644
|
||||
index c66997f00..593e92b64 100644
|
||||
--- a/hw/xwayland/xwayland.h
|
||||
+++ b/hw/xwayland/xwayland.h
|
||||
@@ -380,6 +380,11 @@ struct xwl_output {
|
||||
@@ -379,8 +379,13 @@ struct xwl_output {
|
||||
Bool xdg_output_done;
|
||||
};
|
||||
|
||||
+struct xwl_client {
|
||||
+};
|
||||
+
|
||||
void xwl_window_create_frame_callback(struct xwl_window *xwl_window);
|
||||
|
||||
+struct xwl_client *xwl_client_get(ClientPtr client);
|
||||
+
|
||||
void xwl_sync_events (struct xwl_screen *xwl_screen);
|
||||
void xwl_surface_damage(struct xwl_screen *xwl_screen,
|
||||
struct wl_surface *surface,
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From dfb887783bfe3c5f57d46738bce13ec2d79b1769 Mon Sep 17 00:00:00 2001
|
||||
From 879fed575deea57462217fc31eb331db8d23637c Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Thu, 29 Aug 2019 23:04:36 +0200
|
||||
Subject: [PATCH xserver 07/14] xwayland: Add support for storing per client
|
||||
Subject: [PATCH xserver 07/24] xwayland: Add support for storing per client
|
||||
per output emulated resolution
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
@ -24,6 +24,7 @@ change emulation.
|
||||
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 aca0a588eb40a5e6669094a2ab7f71ca0ba06b16)
|
||||
---
|
||||
hw/xwayland/xwayland-output.c | 67 +++++++++++++++++++++++++++++++++++
|
||||
hw/xwayland/xwayland.h | 17 +++++++++
|
||||
@ -108,10 +109,10 @@ index 67e99bdab..82ff5db70 100644
|
||||
const int32_t xwl_output_fake_modes[][2] = {
|
||||
/* 4:3 (1.33) */
|
||||
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h
|
||||
index 17018fcf5..d0e87a89d 100644
|
||||
index 593e92b64..0e6f92e63 100644
|
||||
--- a/hw/xwayland/xwayland.h
|
||||
+++ b/hw/xwayland/xwayland.h
|
||||
@@ -380,7 +380,21 @@ struct xwl_output {
|
||||
@@ -379,7 +379,21 @@ struct xwl_output {
|
||||
Bool xdg_output_done;
|
||||
};
|
||||
|
||||
@ -132,8 +133,8 @@ index 17018fcf5..d0e87a89d 100644
|
||||
+ struct xwl_emulated_mode emulated_modes[XWL_CLIENT_MAX_EMULATED_MODES];
|
||||
};
|
||||
|
||||
struct xwl_client *xwl_client_get(ClientPtr client);
|
||||
@@ -424,6 +438,9 @@ void xwl_output_destroy(struct xwl_output *xwl_output);
|
||||
void xwl_window_create_frame_callback(struct xwl_window *xwl_window);
|
||||
@@ -425,6 +439,9 @@ void xwl_output_destroy(struct xwl_output *xwl_output);
|
||||
|
||||
void xwl_output_remove(struct xwl_output *xwl_output);
|
||||
|
||||
@ -144,5 +145,5 @@ index 17018fcf5..d0e87a89d 100644
|
||||
float VRefresh, Bool Reduced, Bool Interlaced);
|
||||
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From e997273b14a23b0ffe89f542de783adbec6e8a1b Mon Sep 17 00:00:00 2001
|
||||
From a640802d33e0daccf2d4045ecb3e70cbf56bf0ac Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Tue, 2 Jul 2019 11:55:26 +0200
|
||||
Subject: [PATCH xserver 08/14] xwayland: Add support for randr-resolution
|
||||
Subject: [PATCH xserver 08/24] xwayland: Add support for randr-resolution
|
||||
change emulation using viewport
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
@ -28,6 +28,7 @@ disabling resolution emulation all together when going windowed.
|
||||
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 d99b9ff0f237d15e7eb507484493c73b393d5dba)
|
||||
---
|
||||
hw/xwayland/xwayland-input.c | 5 +
|
||||
hw/xwayland/xwayland-output.c | 63 ++++++++++-
|
||||
@ -142,10 +143,10 @@ index 82ff5db70..99ab1b288 100644
|
||||
|
||||
static Bool
|
||||
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||
index 2b6065f1a..ec1b7eee4 100644
|
||||
index b0e37ceb9..1ab5b3a28 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -163,6 +163,23 @@ xwl_screen_has_resolution_change_emulation(struct xwl_screen *xwl_screen)
|
||||
@@ -176,6 +176,23 @@ xwl_screen_has_resolution_change_emulation(struct xwl_screen *xwl_screen)
|
||||
return xwl_screen->rootless && xwl_screen_has_viewport_support(xwl_screen);
|
||||
}
|
||||
|
||||
@ -169,7 +170,7 @@ index 2b6065f1a..ec1b7eee4 100644
|
||||
static void
|
||||
xwl_window_set_allow_commits(struct xwl_window *xwl_window, Bool allow,
|
||||
const char *debug_msg)
|
||||
@@ -499,6 +516,150 @@ xwl_pixmap_get(PixmapPtr pixmap)
|
||||
@@ -512,6 +529,150 @@ xwl_pixmap_get(PixmapPtr pixmap)
|
||||
return dixLookupPrivate(&pixmap->devPrivates, &xwl_pixmap_private_key);
|
||||
}
|
||||
|
||||
@ -320,7 +321,7 @@ index 2b6065f1a..ec1b7eee4 100644
|
||||
static void
|
||||
xwl_window_init_allow_commits(struct xwl_window *xwl_window)
|
||||
{
|
||||
@@ -569,6 +730,8 @@ ensure_surface_for_window(WindowPtr window)
|
||||
@@ -582,6 +743,8 @@ ensure_surface_for_window(WindowPtr window)
|
||||
|
||||
xwl_window->xwl_screen = xwl_screen;
|
||||
xwl_window->window = window;
|
||||
@ -329,15 +330,15 @@ index 2b6065f1a..ec1b7eee4 100644
|
||||
xwl_window->surface = wl_compositor_create_surface(xwl_screen->compositor);
|
||||
if (xwl_window->surface == NULL) {
|
||||
ErrorF("wl_display_create_surface failed\n");
|
||||
@@ -610,6 +773,7 @@ ensure_surface_for_window(WindowPtr window)
|
||||
@@ -623,6 +786,7 @@ ensure_surface_for_window(WindowPtr window)
|
||||
|
||||
dixSetPrivate(&window->devPrivates, &xwl_window_private_key, xwl_window);
|
||||
xorg_list_init(&xwl_window->link_damage);
|
||||
+ xorg_list_add(&xwl_window->link_window, &xwl_screen->window_list);
|
||||
|
||||
xwl_window_init_allow_commits(xwl_window);
|
||||
|
||||
@@ -704,8 +868,12 @@ xwl_unrealize_window(WindowPtr window)
|
||||
#ifdef GLAMOR_HAS_GBM
|
||||
xorg_list_init(&xwl_window->frame_callback_list);
|
||||
@@ -716,8 +880,12 @@ xwl_unrealize_window(WindowPtr window)
|
||||
if (!xwl_window)
|
||||
return ret;
|
||||
|
||||
@ -350,7 +351,7 @@ index 2b6065f1a..ec1b7eee4 100644
|
||||
unregister_damage(window);
|
||||
|
||||
if (xwl_window->frame_callback)
|
||||
@@ -743,6 +911,33 @@ xwl_set_window_pixmap(WindowPtr window,
|
||||
@@ -767,6 +935,33 @@ xwl_set_window_pixmap(WindowPtr window,
|
||||
ensure_surface_for_window(window);
|
||||
}
|
||||
|
||||
@ -384,7 +385,7 @@ index 2b6065f1a..ec1b7eee4 100644
|
||||
static void
|
||||
frame_callback(void *data,
|
||||
struct wl_callback *callback,
|
||||
@@ -1158,6 +1353,7 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
|
||||
@@ -1218,6 +1413,7 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
|
||||
xorg_list_init(&xwl_screen->output_list);
|
||||
xorg_list_init(&xwl_screen->seat_list);
|
||||
xorg_list_init(&xwl_screen->damage_window_list);
|
||||
@ -392,7 +393,7 @@ index 2b6065f1a..ec1b7eee4 100644
|
||||
xwl_screen->depth = 24;
|
||||
|
||||
xwl_screen->display = wl_display_connect(NULL);
|
||||
@@ -1256,6 +1452,9 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
|
||||
@@ -1316,6 +1512,9 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
|
||||
xwl_screen->CloseScreen = pScreen->CloseScreen;
|
||||
pScreen->CloseScreen = xwl_close_screen;
|
||||
|
||||
@ -403,7 +404,7 @@ index 2b6065f1a..ec1b7eee4 100644
|
||||
xwl_screen->SetWindowPixmap = pScreen->SetWindowPixmap;
|
||||
pScreen->SetWindowPixmap = xwl_set_window_pixmap;
|
||||
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h
|
||||
index d0e87a89d..b52de11d2 100644
|
||||
index 0e6f92e63..9adf3af76 100644
|
||||
--- a/hw/xwayland/xwayland.h
|
||||
+++ b/hw/xwayland/xwayland.h
|
||||
@@ -135,10 +135,12 @@ struct xwl_screen {
|
||||
@ -433,7 +434,7 @@ index d0e87a89d..b52de11d2 100644
|
||||
struct wl_callback *frame_callback;
|
||||
Bool allow_commits;
|
||||
#ifdef GLAMOR_HAS_GBM
|
||||
@@ -408,6 +414,9 @@ Bool xwl_screen_init_cursor(struct xwl_screen *xwl_screen);
|
||||
@@ -409,6 +415,9 @@ Bool xwl_screen_init_cursor(struct xwl_screen *xwl_screen);
|
||||
|
||||
struct xwl_screen *xwl_screen_get(ScreenPtr screen);
|
||||
Bool xwl_screen_has_resolution_change_emulation(struct xwl_screen *xwl_screen);
|
||||
@ -443,7 +444,7 @@ index d0e87a89d..b52de11d2 100644
|
||||
|
||||
void xwl_tablet_tool_set_cursor(struct xwl_tablet_tool *tool);
|
||||
void xwl_seat_set_cursor(struct xwl_seat *xwl_seat);
|
||||
@@ -441,6 +450,12 @@ void xwl_output_remove(struct xwl_output *xwl_output);
|
||||
@@ -442,6 +451,12 @@ void xwl_output_remove(struct xwl_output *xwl_output);
|
||||
struct xwl_emulated_mode *xwl_output_get_emulated_mode_for_client(
|
||||
struct xwl_output *xwl_output, ClientPtr client);
|
||||
|
||||
@ -457,5 +458,5 @@ index d0e87a89d..b52de11d2 100644
|
||||
float VRefresh, Bool Reduced, Bool Interlaced);
|
||||
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 1ea054bda6618025838c3afb052080b749582454 Mon Sep 17 00:00:00 2001
|
||||
From 62e8b2ff7471f1a48b8bac9f41cceecea4931c03 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 8 Jul 2019 14:00:27 +0200
|
||||
Subject: [PATCH xserver 09/14] xwayland: Add xwlRRModeToDisplayMode() helper
|
||||
Subject: [PATCH xserver 09/24] xwayland: Add xwlRRModeToDisplayMode() helper
|
||||
function
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
@ -14,6 +14,7 @@ Wayland viewport extension.
|
||||
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 43c80078126f6f33c6ab7d3cf4668733bde03366)
|
||||
---
|
||||
hw/xwayland/xwayland-vidmode.c | 51 +++++++++++++++++++---------------
|
||||
1 file changed, 28 insertions(+), 23 deletions(-)
|
||||
@ -96,5 +97,5 @@ index 0bcd11401..a59c9f6a9 100644
|
||||
return TRUE;
|
||||
}
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 9edd8e37b5e2659a71b05dabed45fd7c3447de79 Mon Sep 17 00:00:00 2001
|
||||
From 3ecabb250841ff0423744cd2291aaebf87b4239a Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 8 Jul 2019 18:35:27 +0200
|
||||
Subject: [PATCH xserver 10/14] xwayland: Add xwlVidModeGetCurrentRRMode helper
|
||||
Subject: [PATCH xserver 10/24] xwayland: Add xwlVidModeGetCurrentRRMode helper
|
||||
to the vidmode code
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
@ -24,6 +24,7 @@ support to Xwayland's XF86 vidmode extension emulation.
|
||||
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 bcad1b813a04b9f3ff225f57a4baad09bd6315b9)
|
||||
---
|
||||
hw/xwayland/xwayland-vidmode.c | 90 +++++++++++++++++++++-------------
|
||||
1 file changed, 56 insertions(+), 34 deletions(-)
|
||||
@ -188,5 +189,5 @@ index a59c9f6a9..e9aea7269 100644
|
||||
|
||||
static void
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 984691516d78284a8ab63058b0c1d3c68666a7d9 Mon Sep 17 00:00:00 2001
|
||||
From 86e32a877ded8d67ec26ed2bcc06bd80ec2a5915 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Tue, 9 Jul 2019 09:31:13 +0200
|
||||
Subject: [PATCH xserver 11/14] xwayland: Add vidmode mode changing emulation
|
||||
Subject: [PATCH xserver 11/24] xwayland: Add vidmode mode changing emulation
|
||||
support
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
@ -13,6 +13,7 @@ change the resolution when going fullscreen.
|
||||
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 38de6260816674b5430144cc38a8a27d93d1bf19)
|
||||
---
|
||||
hw/xwayland/xwayland-vidmode.c | 130 ++++++++++++++++++++++-----------
|
||||
1 file changed, 86 insertions(+), 44 deletions(-)
|
||||
@ -231,5 +232,5 @@ index e9aea7269..56aac693a 100644
|
||||
|
||||
static Bool
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 912688326c0f9435660e86a2bdab049caa4b0e9f Mon Sep 17 00:00:00 2001
|
||||
From fd95c9a52e35e994e140a925cfc01587257d4511 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/14] xwayland: xwl_window_should_enable_viewport:
|
||||
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
|
||||
@ -19,15 +19,16 @@ 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 ec1b7eee4..58252d2e8 100644
|
||||
index 1ab5b3a28..85036adfe 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -636,6 +636,23 @@ xwl_window_should_enable_viewport(struct xwl_window *xwl_window,
|
||||
@@ -649,6 +649,23 @@ xwl_window_should_enable_viewport(struct xwl_window *xwl_window,
|
||||
}
|
||||
}
|
||||
|
||||
@ -52,5 +53,5 @@ index ec1b7eee4..58252d2e8 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From d9f1d6f51f4c2d388214a675330b58ba2facb170 Mon Sep 17 00:00:00 2001
|
||||
From dda4a8b2f672eb5791f39222dd0996e07b416eb7 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 2 Sep 2019 17:32:45 +0200
|
||||
Subject: [PATCH xserver 13/14] xwayland: Set _XWAYLAND_RANDR_EMU_MONITOR_RECTS
|
||||
Subject: [PATCH xserver 13/24] xwayland: Set _XWAYLAND_RANDR_EMU_MONITOR_RECTS
|
||||
property for resolution emulation
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
@ -29,6 +29,7 @@ be equal to the new resolution.
|
||||
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 5315f988d9f175e4850f4259f691a68d95ce7ac2)
|
||||
---
|
||||
hw/xwayland/xwayland-output.c | 77 +++++++++++++++++++++++++++++++++++
|
||||
hw/xwayland/xwayland.c | 23 +++++++++++
|
||||
@ -138,10 +139,10 @@ index 99ab1b288..20c254962 100644
|
||||
|
||||
static void
|
||||
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||
index 58252d2e8..75ff9f011 100644
|
||||
index 85036adfe..e43f3de96 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -677,6 +677,27 @@ xwl_screen_check_resolution_change_emulation(struct xwl_screen *xwl_screen)
|
||||
@@ -690,6 +690,27 @@ xwl_screen_check_resolution_change_emulation(struct xwl_screen *xwl_screen)
|
||||
xwl_window_check_resolution_change_emulation(xwl_window);
|
||||
}
|
||||
|
||||
@ -169,7 +170,7 @@ index 58252d2e8..75ff9f011 100644
|
||||
static void
|
||||
xwl_window_init_allow_commits(struct xwl_window *xwl_window)
|
||||
{
|
||||
@@ -838,6 +859,8 @@ xwl_realize_window(WindowPtr window)
|
||||
@@ -855,6 +876,8 @@ xwl_realize_window(WindowPtr window)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -179,10 +180,10 @@ index 58252d2e8..75ff9f011 100644
|
||||
}
|
||||
|
||||
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h
|
||||
index b52de11d2..2d825ee8c 100644
|
||||
index 9adf3af76..eb8c4bd70 100644
|
||||
--- a/hw/xwayland/xwayland.h
|
||||
+++ b/hw/xwayland/xwayland.h
|
||||
@@ -417,6 +417,7 @@ Bool xwl_screen_has_resolution_change_emulation(struct xwl_screen *xwl_screen);
|
||||
@@ -418,6 +418,7 @@ Bool xwl_screen_has_resolution_change_emulation(struct xwl_screen *xwl_screen);
|
||||
struct xwl_output *xwl_screen_get_first_output(struct xwl_screen *xwl_screen);
|
||||
void xwl_screen_check_resolution_change_emulation(struct xwl_screen *xwl_screen);
|
||||
Bool xwl_window_has_viewport_enabled(struct xwl_window *xwl_window);
|
||||
@ -190,7 +191,7 @@ index b52de11d2..2d825ee8c 100644
|
||||
|
||||
void xwl_tablet_tool_set_cursor(struct xwl_tablet_tool *tool);
|
||||
void xwl_seat_set_cursor(struct xwl_seat *xwl_seat);
|
||||
@@ -455,6 +456,8 @@ RRModePtr xwl_output_find_mode(struct xwl_output *xwl_output,
|
||||
@@ -456,6 +457,8 @@ RRModePtr xwl_output_find_mode(struct xwl_output *xwl_output,
|
||||
void xwl_output_set_emulated_mode(struct xwl_output *xwl_output,
|
||||
ClientPtr client, RRModePtr mode,
|
||||
Bool from_vidmode);
|
||||
@ -200,5 +201,5 @@ index b52de11d2..2d825ee8c 100644
|
||||
RRModePtr xwayland_cvt(int HDisplay, int VDisplay,
|
||||
float VRefresh, Bool Reduced, Bool Interlaced);
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
|
||||
137
0014-xwayland-Cache-client-id-for-the-window-manager-clie.patch
Normal file
137
0014-xwayland-Cache-client-id-for-the-window-manager-clie.patch
Normal file
@ -0,0 +1,137 @@
|
||||
From aa0f9ba1aa3f12f7e65ed64ac03114f27c8bff1f Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 27 Jan 2020 11:08:00 +0100
|
||||
Subject: [PATCH xserver 14/24] xwayland: Cache client-id for the
|
||||
window-manager client
|
||||
|
||||
Instead of iterating over all clients which are listening for events on the
|
||||
root window and checking if the client we are dealing with is the one
|
||||
listening for SubstructureRedirectMask | ResizeRedirectMask events and thus
|
||||
is the window-manager, cache the client-id of the window-manager in
|
||||
xwl_screen and use that when checking if a client is the window-manager.
|
||||
|
||||
Note that we cache and compare the client-id rather then the ClienPtr,
|
||||
this saves reading the ClientPtr from the global clients array when doing
|
||||
the comparison.
|
||||
|
||||
Suggested-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Acked-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
(cherry picked from commit ded89300c1dd541f59fe6e93c5c69d7fe7088244)
|
||||
---
|
||||
hw/xwayland/xwayland.c | 48 ++++++++++++++++++++++++++++--------------
|
||||
hw/xwayland/xwayland.h | 2 ++
|
||||
2 files changed, 34 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||
index e43f3de96..f4d433bca 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -576,20 +576,11 @@ xwl_window_enable_viewport(struct xwl_window *xwl_window,
|
||||
}
|
||||
|
||||
static Bool
|
||||
-xwl_screen_client_is_window_manager(struct xwl_screen *xwl_screen,
|
||||
- ClientPtr client)
|
||||
+window_is_wm_window(WindowPtr window)
|
||||
{
|
||||
- WindowPtr root = xwl_screen->screen->root;
|
||||
- OtherClients *others;
|
||||
-
|
||||
- for (others = wOtherClients(root); others; others = others->next) {
|
||||
- if (SameClient(others, client)) {
|
||||
- if (others->mask & (SubstructureRedirectMask | ResizeRedirectMask))
|
||||
- return TRUE;
|
||||
- }
|
||||
- }
|
||||
+ struct xwl_screen *xwl_screen = xwl_screen_get(window->drawable.pScreen);
|
||||
|
||||
- return FALSE;
|
||||
+ return CLIENT_ID(window->drawable.id) == xwl_screen->wm_client_id;
|
||||
}
|
||||
|
||||
static ClientPtr
|
||||
@@ -603,7 +594,7 @@ xwl_window_get_owner(struct xwl_window *xwl_window)
|
||||
* decoration window. In that case return the client of the
|
||||
* first *and only* child of the toplevel (decoration) window.
|
||||
*/
|
||||
- if (xwl_screen_client_is_window_manager(xwl_window->xwl_screen, client)) {
|
||||
+ if (window_is_wm_window(window)) {
|
||||
if (window->firstChild && window->firstChild == window->lastChild)
|
||||
return wClient(window->firstChild);
|
||||
else
|
||||
@@ -698,9 +689,7 @@ xwl_screen_check_resolution_change_emulation(struct xwl_screen *xwl_screen)
|
||||
Bool
|
||||
xwl_window_is_toplevel(WindowPtr window)
|
||||
{
|
||||
- struct xwl_screen *xwl_screen = xwl_screen_get(window->drawable.pScreen);
|
||||
-
|
||||
- if (xwl_screen_client_is_window_manager(xwl_screen, wClient(window)))
|
||||
+ if (window_is_wm_window(window))
|
||||
return FALSE;
|
||||
|
||||
/* CSD and override-redirect toplevel windows */
|
||||
@@ -975,6 +964,30 @@ xwl_set_window_pixmap(WindowPtr window,
|
||||
ensure_surface_for_window(window);
|
||||
}
|
||||
|
||||
+static Bool
|
||||
+xwl_change_window_attributes(WindowPtr window, unsigned long mask)
|
||||
+{
|
||||
+ ScreenPtr screen = window->drawable.pScreen;
|
||||
+ struct xwl_screen *xwl_screen = xwl_screen_get(screen);
|
||||
+ OtherClients *others;
|
||||
+ Bool ret;
|
||||
+
|
||||
+ screen->ChangeWindowAttributes = xwl_screen->ChangeWindowAttributes;
|
||||
+ ret = (*screen->ChangeWindowAttributes) (window, mask);
|
||||
+ xwl_screen->ChangeWindowAttributes = screen->ChangeWindowAttributes;
|
||||
+ screen->ChangeWindowAttributes = xwl_change_window_attributes;
|
||||
+
|
||||
+ if (window != screen->root || !(mask & CWEventMask))
|
||||
+ return ret;
|
||||
+
|
||||
+ for (others = wOtherClients(window); others; others = others->next) {
|
||||
+ if (others->mask & (SubstructureRedirectMask | ResizeRedirectMask))
|
||||
+ xwl_screen->wm_client_id = CLIENT_ID(others->resource);
|
||||
+ }
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
static void
|
||||
xwl_resize_window(WindowPtr window,
|
||||
int x, int y,
|
||||
@@ -1552,6 +1565,9 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
|
||||
xwl_screen->CloseScreen = pScreen->CloseScreen;
|
||||
pScreen->CloseScreen = xwl_close_screen;
|
||||
|
||||
+ xwl_screen->ChangeWindowAttributes = pScreen->ChangeWindowAttributes;
|
||||
+ pScreen->ChangeWindowAttributes = xwl_change_window_attributes;
|
||||
+
|
||||
xwl_screen->ResizeWindow = pScreen->ResizeWindow;
|
||||
pScreen->ResizeWindow = xwl_resize_window;
|
||||
|
||||
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h
|
||||
index eb8c4bd70..126af8823 100644
|
||||
--- a/hw/xwayland/xwayland.h
|
||||
+++ b/hw/xwayland/xwayland.h
|
||||
@@ -118,6 +118,7 @@ struct xwl_screen {
|
||||
int height;
|
||||
int depth;
|
||||
ScreenPtr screen;
|
||||
+ int wm_client_id;
|
||||
int expecting_event;
|
||||
enum RootClipMode root_clip_mode;
|
||||
|
||||
@@ -135,6 +136,7 @@ struct xwl_screen {
|
||||
DestroyWindowProcPtr DestroyWindow;
|
||||
XYToWindowProcPtr XYToWindow;
|
||||
SetWindowPixmapProcPtr SetWindowPixmap;
|
||||
+ ChangeWindowAttributesProcPtr ChangeWindowAttributes;
|
||||
ResizeWindowProcPtr ResizeWindow;
|
||||
|
||||
struct xorg_list output_list;
|
||||
--
|
||||
2.25.2
|
||||
|
||||
50
0015-xwayland-Reuse-viewport-instead-of-recreating.patch
Normal file
50
0015-xwayland-Reuse-viewport-instead-of-recreating.patch
Normal file
@ -0,0 +1,50 @@
|
||||
From 1f39cb2ef51c72ec0c448c5d9571540bb0d9f3eb Mon Sep 17 00:00:00 2001
|
||||
From: Roman Gilg <subdiff@gmail.com>
|
||||
Date: Fri, 3 Jan 2020 17:12:14 +0100
|
||||
Subject: [PATCH xserver 15/24] xwayland: Reuse viewport instead of recreating
|
||||
|
||||
When a viewport is already created we can reuse this object instead of
|
||||
destroying it and getting a new one for updating the source rectangle and
|
||||
destination size.
|
||||
|
||||
Signed-off-by: Roman Gilg <subdiff@gmail.com>
|
||||
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Acked-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
(cherry picked from commit 948e02872feb641a176b3af82b6ef1201c97bb16)
|
||||
---
|
||||
hw/xwayland/xwayland.c | 18 +++++++-----------
|
||||
1 file changed, 7 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||
index f4d433bca..320589dde 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -550,17 +550,13 @@ xwl_window_enable_viewport(struct xwl_window *xwl_window,
|
||||
struct xwl_output *xwl_output,
|
||||
struct xwl_emulated_mode *emulated_mode)
|
||||
{
|
||||
- /* If necessary disable old viewport to apply new settings */
|
||||
- if (xwl_window_has_viewport_enabled(xwl_window))
|
||||
- xwl_window_disable_viewport(xwl_window);
|
||||
-
|
||||
- DebugF("XWAYLAND: enabling viewport %dx%d -> %dx%d\n",
|
||||
- emulated_mode->width, emulated_mode->height,
|
||||
- xwl_output->width, xwl_output->height);
|
||||
-
|
||||
- xwl_window->viewport =
|
||||
- wp_viewporter_get_viewport(xwl_window->xwl_screen->viewporter,
|
||||
- xwl_window->surface);
|
||||
+ if (!xwl_window_has_viewport_enabled(xwl_window)) {
|
||||
+ DebugF("XWAYLAND: enabling viewport %dx%d -> %dx%d\n",
|
||||
+ emulated_mode->width, emulated_mode->height,
|
||||
+ xwl_output->width, xwl_output->height);
|
||||
+ xwl_window->viewport = wp_viewporter_get_viewport(xwl_window->xwl_screen->viewporter,
|
||||
+ xwl_window->surface);
|
||||
+ }
|
||||
|
||||
wp_viewport_set_source(xwl_window->viewport,
|
||||
wl_fixed_from_int(0),
|
||||
--
|
||||
2.25.2
|
||||
|
||||
81
0016-xwayland-Recurse-on-finding-the-none-wm-owner.patch
Normal file
81
0016-xwayland-Recurse-on-finding-the-none-wm-owner.patch
Normal file
@ -0,0 +1,81 @@
|
||||
From 8cedbfd448edf410a45c57addcee0e7304f11b86 Mon Sep 17 00:00:00 2001
|
||||
From: Roman Gilg <subdiff@gmail.com>
|
||||
Date: Fri, 3 Jan 2020 17:27:28 +0100
|
||||
Subject: [PATCH xserver 16/24] xwayland: Recurse on finding the none-wm owner
|
||||
|
||||
An X11 window manager might add a chain of parent windows when reparenting to a
|
||||
decoration window.
|
||||
|
||||
That is for example the case for KWin, which reparents client windows to one
|
||||
decoration and another wrapper parent window.
|
||||
|
||||
Account for that by a recursion into the tree. For now assume as before that
|
||||
all X11 window managers reparent with one child only for these parent windows.
|
||||
|
||||
Changes by Hans de Goede:
|
||||
- Move the xwl_window_is_toplevel() from a later patch in this series here
|
||||
as it really belongs together with these changes
|
||||
- Drop no longer necessary xwl_window argument from window_get_none_wm_owner
|
||||
parameters
|
||||
|
||||
Signed-off-by: Roman Gilg <subdiff@gmail.com>
|
||||
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Acked-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
(cherry picked from commit a69f7fbb54efc8ffad320c8afd23cb41fc9edc27)
|
||||
---
|
||||
hw/xwayland/xwayland.c | 17 ++++++++---------
|
||||
1 file changed, 8 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||
index 320589dde..f42b80b90 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -580,19 +580,18 @@ window_is_wm_window(WindowPtr window)
|
||||
}
|
||||
|
||||
static ClientPtr
|
||||
-xwl_window_get_owner(struct xwl_window *xwl_window)
|
||||
+window_get_none_wm_owner(WindowPtr window)
|
||||
{
|
||||
- WindowPtr window = xwl_window->window;
|
||||
ClientPtr client = wClient(window);
|
||||
|
||||
/* If the toplevel window is owned by the window-manager, then the
|
||||
- * actual client toplevel window has been reparented to a window-manager
|
||||
- * decoration window. In that case return the client of the
|
||||
- * first *and only* child of the toplevel (decoration) window.
|
||||
+ * actual client toplevel window has been reparented to some window-manager
|
||||
+ * decoration/wrapper windows. In that case recurse by checking the client
|
||||
+ * of the first *and only* child of the decoration/wrapper window.
|
||||
*/
|
||||
if (window_is_wm_window(window)) {
|
||||
if (window->firstChild && window->firstChild == window->lastChild)
|
||||
- return wClient(window->firstChild);
|
||||
+ return window_get_none_wm_owner(window->firstChild);
|
||||
else
|
||||
return NULL; /* Should never happen, skip resolution emulation */
|
||||
}
|
||||
@@ -613,7 +612,7 @@ xwl_window_should_enable_viewport(struct xwl_window *xwl_window,
|
||||
if (!xwl_screen_has_resolution_change_emulation(xwl_screen))
|
||||
return FALSE;
|
||||
|
||||
- owner = xwl_window_get_owner(xwl_window);
|
||||
+ owner = window_get_none_wm_owner(xwl_window->window);
|
||||
if (!owner)
|
||||
return FALSE;
|
||||
|
||||
@@ -692,8 +691,8 @@ xwl_window_is_toplevel(WindowPtr window)
|
||||
if (window_get_damage(window))
|
||||
return TRUE;
|
||||
|
||||
- /* Normal toplevel client windows, reparented to decoration window */
|
||||
- return (window->parent && window_get_damage(window->parent));
|
||||
+ /* Normal toplevel client windows, reparented to a window-manager window */
|
||||
+ return window->parent && window_is_wm_window(window->parent);
|
||||
}
|
||||
|
||||
static void
|
||||
--
|
||||
2.25.2
|
||||
|
||||
@ -0,0 +1,82 @@
|
||||
From 939a78925a1d591e6aaf291a6609b9c6e54ee6ce Mon Sep 17 00:00:00 2001
|
||||
From: Roman Gilg <subdiff@gmail.com>
|
||||
Date: Wed, 15 Jan 2020 10:07:58 +0100
|
||||
Subject: [PATCH xserver 17/24] xwayland: Make window_get_none_wm_owner return
|
||||
a Window instead of a Client
|
||||
|
||||
Make window_get_none_wm_owner return the first non-wm-window instead of the
|
||||
owner (client) of the first non-wm-window and rename it to
|
||||
window_get_client_toplevel to match its new behavior.
|
||||
|
||||
This is a preparation patch for switching to using the drawable coordinates
|
||||
in xwl_window_should_enable_viewport()
|
||||
|
||||
Changes by Hans de Goede:
|
||||
- Split this change out into a separate patch for easier reviewing
|
||||
- Rename window_get_none_wm_owner to window_get_client_toplevel to match
|
||||
its new behavior
|
||||
|
||||
Signed-off-by: Roman Gilg <subdiff@gmail.com>
|
||||
Acked-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
(cherry picked from commit 060f10062eb1761515b762b46cba56c7a53db72c)
|
||||
---
|
||||
hw/xwayland/xwayland.c | 17 ++++++++++-------
|
||||
1 file changed, 10 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||
index f42b80b90..d70d729ae 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -579,10 +579,10 @@ window_is_wm_window(WindowPtr window)
|
||||
return CLIENT_ID(window->drawable.id) == xwl_screen->wm_client_id;
|
||||
}
|
||||
|
||||
-static ClientPtr
|
||||
-window_get_none_wm_owner(WindowPtr window)
|
||||
+static WindowPtr
|
||||
+window_get_client_toplevel(WindowPtr window)
|
||||
{
|
||||
- ClientPtr client = wClient(window);
|
||||
+ assert(window);
|
||||
|
||||
/* If the toplevel window is owned by the window-manager, then the
|
||||
* actual client toplevel window has been reparented to some window-manager
|
||||
@@ -591,12 +591,12 @@ window_get_none_wm_owner(WindowPtr window)
|
||||
*/
|
||||
if (window_is_wm_window(window)) {
|
||||
if (window->firstChild && window->firstChild == window->lastChild)
|
||||
- return window_get_none_wm_owner(window->firstChild);
|
||||
+ return window_get_client_toplevel(window->firstChild);
|
||||
else
|
||||
return NULL; /* Should never happen, skip resolution emulation */
|
||||
}
|
||||
|
||||
- return client;
|
||||
+ return window;
|
||||
}
|
||||
|
||||
static Bool
|
||||
@@ -608,14 +608,17 @@ xwl_window_should_enable_viewport(struct xwl_window *xwl_window,
|
||||
struct xwl_emulated_mode *emulated_mode;
|
||||
struct xwl_output *xwl_output;
|
||||
ClientPtr owner;
|
||||
+ WindowPtr window;
|
||||
|
||||
if (!xwl_screen_has_resolution_change_emulation(xwl_screen))
|
||||
return FALSE;
|
||||
|
||||
- owner = window_get_none_wm_owner(xwl_window->window);
|
||||
- if (!owner)
|
||||
+ window = window_get_client_toplevel(xwl_window->window);
|
||||
+ if (!window)
|
||||
return FALSE;
|
||||
|
||||
+ owner = wClient(window);
|
||||
+
|
||||
/* 1. Test if the window matches the emulated mode on one of the outputs
|
||||
* This path gets hit by most games / libs (e.g. SDL, SFML, OGRE)
|
||||
*/
|
||||
--
|
||||
2.25.2
|
||||
|
||||
121
0018-xwayland-Check-emulation-on-client-toplevel-resize.patch
Normal file
121
0018-xwayland-Check-emulation-on-client-toplevel-resize.patch
Normal file
@ -0,0 +1,121 @@
|
||||
From c5d9cb5f4bc4f703b66fc524a76247c742490b30 Mon Sep 17 00:00:00 2001
|
||||
From: Roman Gilg <subdiff@gmail.com>
|
||||
Date: Fri, 3 Jan 2020 17:55:28 +0100
|
||||
Subject: [PATCH xserver 18/24] xwayland: Check emulation on client toplevel
|
||||
resize
|
||||
|
||||
When a reparented window is resized directly check the emulation instead of
|
||||
doing this only when the window manager parent window is resized, what might
|
||||
never happen.
|
||||
|
||||
For that to work we need to make sure that we compare the current size of the
|
||||
client toplevel when looking for an emulated mode.
|
||||
|
||||
Changes by Hans de Goede:
|
||||
- Remove xwl_window x, y, width and height members as those are no longer used.
|
||||
- Add check for xwl_window_from_window() returning NULL.
|
||||
|
||||
Signed-off-by: Roman Gilg <subdiff@gmail.com>
|
||||
Acked-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
(cherry picked from commit 6d98f840da6dfcf2a69e03a1b3fa0bf602ba1f27)
|
||||
---
|
||||
hw/xwayland/xwayland.c | 27 +++++++++++----------------
|
||||
hw/xwayland/xwayland.h | 1 -
|
||||
2 files changed, 11 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||
index d70d729ae..14227a327 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -609,6 +609,7 @@ xwl_window_should_enable_viewport(struct xwl_window *xwl_window,
|
||||
struct xwl_output *xwl_output;
|
||||
ClientPtr owner;
|
||||
WindowPtr window;
|
||||
+ DrawablePtr drawable;
|
||||
|
||||
if (!xwl_screen_has_resolution_change_emulation(xwl_screen))
|
||||
return FALSE;
|
||||
@@ -618,6 +619,7 @@ xwl_window_should_enable_viewport(struct xwl_window *xwl_window,
|
||||
return FALSE;
|
||||
|
||||
owner = wClient(window);
|
||||
+ drawable = &window->drawable;
|
||||
|
||||
/* 1. Test if the window matches the emulated mode on one of the outputs
|
||||
* This path gets hit by most games / libs (e.g. SDL, SFML, OGRE)
|
||||
@@ -627,10 +629,10 @@ xwl_window_should_enable_viewport(struct xwl_window *xwl_window,
|
||||
if (!emulated_mode)
|
||||
continue;
|
||||
|
||||
- if (xwl_window->x == xwl_output->x &&
|
||||
- xwl_window->y == xwl_output->y &&
|
||||
- xwl_window->width == emulated_mode->width &&
|
||||
- xwl_window->height == emulated_mode->height) {
|
||||
+ if (drawable->x == xwl_output->x &&
|
||||
+ drawable->y == xwl_output->y &&
|
||||
+ drawable->width == emulated_mode->width &&
|
||||
+ drawable->height == emulated_mode->height) {
|
||||
|
||||
*emulated_mode_ret = emulated_mode;
|
||||
*xwl_output_ret = xwl_output;
|
||||
@@ -646,9 +648,9 @@ xwl_window_should_enable_viewport(struct xwl_window *xwl_window,
|
||||
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) {
|
||||
+ drawable->x == 0 && drawable->y == 0 &&
|
||||
+ drawable->width == xwl_screen->width &&
|
||||
+ drawable->height == xwl_screen->height) {
|
||||
|
||||
*emulated_mode_ret = emulated_mode;
|
||||
*xwl_output_ret = xwl_output;
|
||||
@@ -768,8 +770,6 @@ ensure_surface_for_window(WindowPtr window)
|
||||
|
||||
xwl_window->xwl_screen = xwl_screen;
|
||||
xwl_window->window = window;
|
||||
- xwl_window->width = window->drawable.width;
|
||||
- xwl_window->height = window->drawable.height;
|
||||
xwl_window->surface = wl_compositor_create_surface(xwl_screen->compositor);
|
||||
if (xwl_window->surface == NULL) {
|
||||
ErrorF("wl_display_create_surface failed\n");
|
||||
@@ -997,20 +997,15 @@ xwl_resize_window(WindowPtr window,
|
||||
struct xwl_window *xwl_window;
|
||||
|
||||
xwl_screen = xwl_screen_get(screen);
|
||||
- xwl_window = xwl_window_get(window);
|
||||
+ xwl_window = xwl_window_from_window(window);
|
||||
|
||||
screen->ResizeWindow = xwl_screen->ResizeWindow;
|
||||
(*screen->ResizeWindow) (window, x, y, width, height, sib);
|
||||
xwl_screen->ResizeWindow = screen->ResizeWindow;
|
||||
screen->ResizeWindow = xwl_resize_window;
|
||||
|
||||
- if (xwl_window) {
|
||||
- xwl_window->x = x;
|
||||
- xwl_window->y = y;
|
||||
- xwl_window->width = width;
|
||||
- xwl_window->height = height;
|
||||
+ if (xwl_window && xwl_window_is_toplevel(window))
|
||||
xwl_window_check_resolution_change_emulation(xwl_window);
|
||||
- }
|
||||
}
|
||||
|
||||
static void
|
||||
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h
|
||||
index 126af8823..01aef27d2 100644
|
||||
--- a/hw/xwayland/xwayland.h
|
||||
+++ b/hw/xwayland/xwayland.h
|
||||
@@ -184,7 +184,6 @@ struct xwl_window {
|
||||
struct xwl_screen *xwl_screen;
|
||||
struct wl_surface *surface;
|
||||
struct wp_viewport *viewport;
|
||||
- int32_t x, y, width, height;
|
||||
float scale_x, scale_y;
|
||||
struct wl_shell_surface *shell_surface;
|
||||
WindowPtr window;
|
||||
--
|
||||
2.25.2
|
||||
|
||||
@ -0,0 +1,45 @@
|
||||
From 63b0c0d76d1020f0cac331f3eff30fba07f79965 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Wed, 15 Jan 2020 14:36:45 +0100
|
||||
Subject: [PATCH xserver 19/24] xwayland: Also check
|
||||
resolution-change-emulation when the xwl_window itself moves
|
||||
|
||||
The recent change to use the top-level non-window-manager Window drawable
|
||||
coordinates from xwl_window_check_resolution_change_emulation() in
|
||||
combination with only calling it on a resize when the top-level window
|
||||
is moved breaks things with mutter/gnome-shell.
|
||||
|
||||
When fullscreening a X11 window, mutter moves its window-decoration Window
|
||||
wrapping the top-level Window to the monitor's origin coordinates (e.g. 0x0)
|
||||
last. This updates the top-level's drawable coordinates, but as the
|
||||
actual MoveWindow is called on the wrapper Window and not on the toplevel
|
||||
we do not call xwl_window_check_resolution_change_emulation() and we never
|
||||
enable the viewport.
|
||||
|
||||
This commit fixes this by also calling
|
||||
xwl_window_check_resolution_change_emulation() if the Window being moved
|
||||
is an xwl_window itself.
|
||||
|
||||
Acked-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
(cherry picked from commit 4fc107460a349a1a46f0e5251e6fd2a31f4c0428)
|
||||
---
|
||||
hw/xwayland/xwayland.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||
index 14227a327..298ef3ac8 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -1004,7 +1004,7 @@ xwl_resize_window(WindowPtr window,
|
||||
xwl_screen->ResizeWindow = screen->ResizeWindow;
|
||||
screen->ResizeWindow = xwl_resize_window;
|
||||
|
||||
- if (xwl_window && xwl_window_is_toplevel(window))
|
||||
+ if (xwl_window && (xwl_window_get(window) || xwl_window_is_toplevel(window)))
|
||||
xwl_window_check_resolution_change_emulation(xwl_window);
|
||||
}
|
||||
|
||||
--
|
||||
2.25.2
|
||||
|
||||
83
0020-xwayland-Also-hook-screen-s-MoveWindow-method.patch
Normal file
83
0020-xwayland-Also-hook-screen-s-MoveWindow-method.patch
Normal file
@ -0,0 +1,83 @@
|
||||
From 309e6e549adc5a164541d16822745c022cd8574b Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Thu, 9 Jan 2020 11:00:36 +0100
|
||||
Subject: [PATCH xserver 20/24] xwayland: Also hook screen's MoveWindow method
|
||||
|
||||
Not only hook the ResizeWindow method of the screen (which really is
|
||||
MoveAndResize) but also hook the MoveWindow method for checking if we
|
||||
need to setup a viewport for resolution change emulation.
|
||||
|
||||
Our resolution change emulation check if the windows origin matches
|
||||
the monitors origin and the windows origin can also be changed by just
|
||||
a move without being resized.
|
||||
|
||||
Also checking on a move becomes esp. important when we move to checking
|
||||
on changes to the top-level non-window-manager client (X11)Window instead
|
||||
of on changes to the xwl_window later on in this patch series.
|
||||
|
||||
Acked-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
(cherry picked from commit 10df0437a2b142e61c4d84ffffa9592ac6846ef1)
|
||||
---
|
||||
hw/xwayland/xwayland.c | 25 +++++++++++++++++++++++++
|
||||
hw/xwayland/xwayland.h | 1 +
|
||||
2 files changed, 26 insertions(+)
|
||||
|
||||
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||
index 298ef3ac8..1294ff1d8 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -1008,6 +1008,28 @@ xwl_resize_window(WindowPtr window,
|
||||
xwl_window_check_resolution_change_emulation(xwl_window);
|
||||
}
|
||||
|
||||
+static void
|
||||
+xwl_move_window(WindowPtr window,
|
||||
+ int x, int y,
|
||||
+ WindowPtr next_sib,
|
||||
+ VTKind kind)
|
||||
+{
|
||||
+ ScreenPtr screen = window->drawable.pScreen;
|
||||
+ struct xwl_screen *xwl_screen;
|
||||
+ struct xwl_window *xwl_window;
|
||||
+
|
||||
+ xwl_screen = xwl_screen_get(screen);
|
||||
+ xwl_window = xwl_window_from_window(window);
|
||||
+
|
||||
+ screen->MoveWindow = xwl_screen->MoveWindow;
|
||||
+ (*screen->MoveWindow) (window, x, y, next_sib, kind);
|
||||
+ xwl_screen->MoveWindow = screen->MoveWindow;
|
||||
+ screen->MoveWindow = xwl_move_window;
|
||||
+
|
||||
+ if (xwl_window && (xwl_window_get(window) || xwl_window_is_toplevel(window)))
|
||||
+ xwl_window_check_resolution_change_emulation(xwl_window);
|
||||
+}
|
||||
+
|
||||
static void
|
||||
frame_callback(void *data,
|
||||
struct wl_callback *callback,
|
||||
@@ -1564,6 +1586,9 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
|
||||
xwl_screen->ResizeWindow = pScreen->ResizeWindow;
|
||||
pScreen->ResizeWindow = xwl_resize_window;
|
||||
|
||||
+ xwl_screen->MoveWindow = pScreen->MoveWindow;
|
||||
+ pScreen->MoveWindow = xwl_move_window;
|
||||
+
|
||||
if (xwl_screen->rootless) {
|
||||
xwl_screen->SetWindowPixmap = pScreen->SetWindowPixmap;
|
||||
pScreen->SetWindowPixmap = xwl_set_window_pixmap;
|
||||
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h
|
||||
index 01aef27d2..72225374b 100644
|
||||
--- a/hw/xwayland/xwayland.h
|
||||
+++ b/hw/xwayland/xwayland.h
|
||||
@@ -138,6 +138,7 @@ struct xwl_screen {
|
||||
SetWindowPixmapProcPtr SetWindowPixmap;
|
||||
ChangeWindowAttributesProcPtr ChangeWindowAttributes;
|
||||
ResizeWindowProcPtr ResizeWindow;
|
||||
+ MoveWindowProcPtr MoveWindow;
|
||||
|
||||
struct xorg_list output_list;
|
||||
struct xorg_list seat_list;
|
||||
--
|
||||
2.25.2
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From c392765d459bd2cac6e3f431c67d698bb905e0ab Mon Sep 17 00:00:00 2001
|
||||
From 52bbef1f55d17229684b0d76a478ec639c4032ed Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 7 Oct 2019 14:27:49 +0200
|
||||
Subject: [PATCH xserver 14/14] xwayland: Fix emulated modes not being removed
|
||||
Subject: [PATCH xserver 21/24] xwayland: Fix emulated modes not being removed
|
||||
when screen rotation is used
|
||||
|
||||
The code building the mode-list does the following to deal with screen
|
||||
@ -24,7 +24,9 @@ to a member of xwl_output->randr_output->modes, so we do not need to
|
||||
duplicate this code, instead we can simply check that the passed in mode
|
||||
is modes[0] which always is the actual output mode.
|
||||
|
||||
Acked-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
(cherry picked from commit 88342353de45e64f408c38bb10cd1506ba0f159a)
|
||||
---
|
||||
hw/xwayland/xwayland-output.c | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
@ -57,5 +59,5 @@ index 20c254962..7d705d919 100644
|
||||
else
|
||||
xwl_output_add_emulated_mode_for_client(xwl_output, client, mode, from_vidmode);
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 01629caef21b77cfabc052408eb04699e4fa5143 Mon Sep 17 00:00:00 2001
|
||||
From 57d0ad44fd0b04fff98e9b484816dc95068a90cc Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 4 Nov 2019 11:46:49 +0100
|
||||
Subject: [PATCH xserver 15/17] xwayland: Call
|
||||
Subject: [PATCH xserver 22/24] xwayland: Call
|
||||
xwl_window_check_resolution_change_emulation() on newly created O-R windows
|
||||
|
||||
Some clients, which use vidmode to change the resolution when going fullscreen,
|
||||
@ -20,20 +20,22 @@ thus will not have an xwl_window.
|
||||
This fixes ClanLib-0.6.x and alleggl-4.4.x using apps not properly
|
||||
fullscreening.
|
||||
|
||||
Acked-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
(cherry picked from commit 4cfc2677f5c82ca5db0919de549b9b077f1ba113)
|
||||
---
|
||||
hw/xwayland/xwayland.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||
index 75ff9f011..ed1d671ff 100644
|
||||
index 1294ff1d8..6b86e56bd 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -815,6 +815,11 @@ ensure_surface_for_window(WindowPtr window)
|
||||
@@ -819,6 +819,11 @@ ensure_surface_for_window(WindowPtr window)
|
||||
|
||||
xwl_window_init_allow_commits(xwl_window);
|
||||
|
||||
+ if (!xwl_screen_client_is_window_manager(xwl_screen, wClient(window))) {
|
||||
+ if (!window_is_wm_window(window)) {
|
||||
+ /* CSD or O-R toplevel window, check viewport on creation */
|
||||
+ xwl_window_check_resolution_change_emulation(xwl_window);
|
||||
+ }
|
||||
@ -42,5 +44,5 @@ index 75ff9f011..ed1d671ff 100644
|
||||
|
||||
err_surf:
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 2db2fcb97bd148476817634486cb384a1f623fa9 Mon Sep 17 00:00:00 2001
|
||||
From 87a1a7b9f8f7d848302057b9ca54f6729e82bbe7 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 4 Nov 2019 14:32:29 +0100
|
||||
Subject: [PATCH xserver 16/17] xwayland: Fix setting of
|
||||
Subject: [PATCH xserver 23/24] xwayland: Fix setting of
|
||||
_XWAYLAND_RANDR_EMU_MONITOR_RECTS prop on new windows
|
||||
|
||||
For window-manager managed windows, xwl_realize_window is only called for
|
||||
@ -27,31 +27,42 @@ work.
|
||||
This fixes apps using the ogre3d library always running at the
|
||||
monitors native resolution.
|
||||
|
||||
Acked-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
(cherry picked from commit 148f428dfccf606b932a00d5a00af06e8dca8a7e)
|
||||
---
|
||||
hw/xwayland/xwayland.c | 10 +++++++---
|
||||
1 file changed, 7 insertions(+), 3 deletions(-)
|
||||
hw/xwayland/xwayland.c | 12 +++++++++---
|
||||
1 file changed, 9 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||
index ed1d671ff..1ce29c51c 100644
|
||||
index 6b86e56bd..e721d6cb5 100644
|
||||
--- a/hw/xwayland/xwayland.c
|
||||
+++ b/hw/xwayland/xwayland.c
|
||||
@@ -815,7 +815,13 @@ ensure_surface_for_window(WindowPtr window)
|
||||
@@ -749,6 +749,7 @@ ensure_surface_for_window(WindowPtr window)
|
||||
struct xwl_screen *xwl_screen;
|
||||
struct xwl_window *xwl_window;
|
||||
struct wl_region *region;
|
||||
+ WindowPtr toplevel;
|
||||
|
||||
if (xwl_window_get(window))
|
||||
return TRUE;
|
||||
@@ -819,7 +820,14 @@ ensure_surface_for_window(WindowPtr window)
|
||||
|
||||
xwl_window_init_allow_commits(xwl_window);
|
||||
|
||||
- if (!xwl_screen_client_is_window_manager(xwl_screen, wClient(window))) {
|
||||
+ /* When a new windom-manager decoration window is realized, then the randr
|
||||
+ * emulation props have not been set on the managed client window yet.
|
||||
- if (!window_is_wm_window(window)) {
|
||||
+ /* When a new window-manager window is realized, then the randr emulation
|
||||
+ * props may have not been set on the managed client window yet.
|
||||
+ */
|
||||
+ if (xwl_screen_client_is_window_manager(xwl_screen, wClient(window))) {
|
||||
+ if (window->firstChild && window->firstChild == window->lastChild)
|
||||
+ xwl_output_set_window_randr_emu_props(xwl_screen, window->firstChild);
|
||||
+ if (window_is_wm_window(window)) {
|
||||
+ toplevel = window_get_client_toplevel(window);
|
||||
+ if (toplevel)
|
||||
+ xwl_output_set_window_randr_emu_props(xwl_screen, toplevel);
|
||||
+ } else {
|
||||
/* CSD or O-R toplevel window, check viewport on creation */
|
||||
xwl_window_check_resolution_change_emulation(xwl_window);
|
||||
}
|
||||
@@ -864,8 +870,6 @@ xwl_realize_window(WindowPtr window)
|
||||
@@ -868,8 +876,6 @@ xwl_realize_window(WindowPtr window)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -61,5 +72,5 @@ index ed1d671ff..1ce29c51c 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From f73305cc415d2fd464aae4b0dc72558fd1b6bd81 Mon Sep 17 00:00:00 2001
|
||||
From 231d5e2da2e1b0aee3cfe6febc54daf7a0e4b4c7 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 4 Nov 2019 15:01:18 +0100
|
||||
Subject: [PATCH xserver 17/17] xwayland: Remove unnecessary
|
||||
Subject: [PATCH xserver 24/24] xwayland: Remove unnecessary
|
||||
xwl_window_is_toplevel() check from xwl_output_set_window_randr_emu_props()
|
||||
|
||||
Since the recent fix to call xwl_output_set_window_randr_emu_props() from
|
||||
@ -13,7 +13,9 @@ This commit moves the check to xwl_output_set_randr_emu_prop_callback()
|
||||
so that we only do it when we are walking over all Windows of a client
|
||||
to update the property on a change of the emulated resolution.
|
||||
|
||||
Acked-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
(cherry picked from commit d4faab8708779df265239b203ed5f020bff681bf)
|
||||
---
|
||||
hw/xwayland/xwayland-output.c | 6 ++----
|
||||
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||
@ -43,5 +45,5 @@ index 7d705d919..084b669e4 100644
|
||||
|
||||
static void
|
||||
--
|
||||
2.23.0
|
||||
2.25.2
|
||||
|
||||
0
driver-abi-rebuild.sh
Executable file → Normal file
0
driver-abi-rebuild.sh
Executable file → Normal file
Binary file not shown.
BIN
xorg-server-1.20.8.tar.bz2
Normal file
BIN
xorg-server-1.20.8.tar.bz2
Normal file
Binary file not shown.
@ -7,7 +7,7 @@
|
||||
%global ansic_major 0
|
||||
%global ansic_minor 4
|
||||
%global videodrv_major 24
|
||||
%global videodrv_minor 0
|
||||
%global videodrv_minor 1
|
||||
%global xinput_major 24
|
||||
%global xinput_minor 1
|
||||
%global extension_major 10
|
||||
@ -15,8 +15,8 @@
|
||||
%global pkgname xorg-server
|
||||
|
||||
Name: xorg-x11-server
|
||||
Version: 1.20.6
|
||||
Release: 4
|
||||
Version: 1.20.8
|
||||
Release: 1
|
||||
Summary: X.Org X11 X server
|
||||
License: MIT and GPLv2
|
||||
URL: https://www.x.org
|
||||
@ -36,58 +36,63 @@ Source31: xserver-sdk-abi-requires.git
|
||||
Source40: driver-abi-rebuild.sh
|
||||
|
||||
# From Debian use intel ddx driver only for gen4 and older chipsets
|
||||
Patch6000: 06_use-intel-only-on-pre-gen4.diff
|
||||
Patch0000: 06_use-intel-only-on-pre-gen4.diff
|
||||
# Default to xf86-video-modesetting on GeForce 8 and newer
|
||||
Patch6001: 0001-xfree86-use-modesetting-driver-by-default-on-GeForce.patch
|
||||
Patch0001: 0001-xfree86-use-modesetting-driver-by-default-on-GeForce.patch
|
||||
|
||||
# Default to va_gl on intel i965 as we use the modesetting drv there
|
||||
# va_gl should probably just be the default everywhere ?
|
||||
Patch6002: 0001-xf86-dri2-Use-va_gl-as-vdpau_driver-for-Intel-i965-G.patch
|
||||
Patch0002: 0001-xf86-dri2-Use-va_gl-as-vdpau_driver-for-Intel-i965-G.patch
|
||||
|
||||
# Submitted upstream, but not going anywhere
|
||||
Patch6003: 0001-autobind-GPUs-to-the-screen.patch
|
||||
Patch0003: 0001-autobind-GPUs-to-the-screen.patch
|
||||
|
||||
# because the display-managers are not ready yet, do not upstream
|
||||
Patch6004: 0001-Fedora-hack-Make-the-suid-root-wrapper-always-start-.patch
|
||||
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1697804
|
||||
Patch6005: 0001-Xi-return-AlreadyGrabbed-for-key-grabs-255.patch
|
||||
Patch0004: 0001-Fedora-hack-Make-the-suid-root-wrapper-always-start-.patch
|
||||
|
||||
# Backports from current stable "server-1.20-branch":
|
||||
# Backports from "master" upstream:
|
||||
# Backported Xwayland randr resolution change emulation support
|
||||
Patch6006: 0001-dix-Add-GetCurrentClient-helper.patch
|
||||
Patch6007: 0002-xwayland-Add-wp_viewport-wayland-extension-support.patch
|
||||
Patch6008: 0003-xwayland-Use-buffer_damage-instead-of-surface-damage.patch
|
||||
Patch6009: 0004-xwayland-Add-fake-output-modes-to-xrandr-output-mode.patch
|
||||
Patch6010: 0005-xwayland-Use-RandR-1.2-interface-rev-2.patch
|
||||
Patch6011: 0006-xwayland-Add-per-client-private-data.patch
|
||||
Patch6012: 0007-xwayland-Add-support-for-storing-per-client-per-outp.patch
|
||||
Patch6013: 0008-xwayland-Add-support-for-randr-resolution-change-emu.patch
|
||||
Patch6014: 0009-xwayland-Add-xwlRRModeToDisplayMode-helper-function.patch
|
||||
Patch6015: 0010-xwayland-Add-xwlVidModeGetCurrentRRMode-helper-to-th.patch
|
||||
Patch6016: 0011-xwayland-Add-vidmode-mode-changing-emulation-support.patch
|
||||
Patch6017: 0012-xwayland-xwl_window_should_enable_viewport-Add-extra.patch
|
||||
Patch6018: 0013-xwayland-Set-_XWAYLAND_RANDR_EMU_MONITOR_RECTS-prope.patch
|
||||
Patch6019: 0014-xwayland-Fix-emulated-modes-not-being-removed-when-s.patch
|
||||
Patch6020: 0015-xwayland-Call-xwl_window_check_resolution_change_emu.patch
|
||||
Patch6021: 0016-xwayland-Fix-setting-of-_XWAYLAND_RANDR_EMU_MONITOR_.patch
|
||||
Patch6022: 0017-xwayland-Remove-unnecessary-xwl_window_is_toplevel-c.patch
|
||||
|
||||
|
||||
Patch6023: xorg-s11-server-CVE-2018-20839.patch
|
||||
Patch0005: 0001-dix-Add-GetCurrentClient-helper.patch
|
||||
Patch0006: 0002-xwayland-Add-wp_viewport-wayland-extension-support.patch
|
||||
Patch0007: 0003-xwayland-Use-buffer_damage-instead-of-surface-damage.patch
|
||||
Patch0008: 0004-xwayland-Add-fake-output-modes-to-xrandr-output-mode.patch
|
||||
Patch0009: 0005-xwayland-Use-RandR-1.2-interface-rev-2.patch
|
||||
Patch0010: 0006-xwayland-Add-per-client-private-data.patch
|
||||
Patch0011: 0007-xwayland-Add-support-for-storing-per-client-per-outp.patch
|
||||
Patch0012: 0008-xwayland-Add-support-for-randr-resolution-change-emu.patch
|
||||
Patch0013: 0009-xwayland-Add-xwlRRModeToDisplayMode-helper-function.patch
|
||||
Patch0014: 0010-xwayland-Add-xwlVidModeGetCurrentRRMode-helper-to-th.patch
|
||||
Patch0015: 0011-xwayland-Add-vidmode-mode-changing-emulation-support.patch
|
||||
Patch0016: 0012-xwayland-xwl_window_should_enable_viewport-Add-extra.patch
|
||||
Patch0017: 0013-xwayland-Set-_XWAYLAND_RANDR_EMU_MONITOR_RECTS-prope.patch
|
||||
Patch0018: 0014-xwayland-Cache-client-id-for-the-window-manager-clie.patch
|
||||
Patch0019: 0015-xwayland-Reuse-viewport-instead-of-recreating.patch
|
||||
Patch0020: 0016-xwayland-Recurse-on-finding-the-none-wm-owner.patch
|
||||
Patch0021: 0017-xwayland-Make-window_get_none_wm_owner-return-a-Wind.patch
|
||||
Patch0022: 0018-xwayland-Check-emulation-on-client-toplevel-resize.patch
|
||||
Patch0023: 0019-xwayland-Also-check-resolution-change-emulation-when.patch
|
||||
Patch0024: 0020-xwayland-Also-hook-screen-s-MoveWindow-method.patch
|
||||
Patch0025: 0021-xwayland-Fix-emulated-modes-not-being-removed-when-s.patch
|
||||
Patch0026: 0022-xwayland-Call-xwl_window_check_resolution_change_emu.patch
|
||||
Patch0027: 0023-xwayland-Fix-setting-of-_XWAYLAND_RANDR_EMU_MONITOR_.patch
|
||||
Patch0028: 0024-xwayland-Remove-unnecessary-xwl_window_is_toplevel-c.patch
|
||||
Patch0029: xorg-s11-server-CVE-2018-20839.patch
|
||||
|
||||
BuildRequires: audit-libs-devel autoconf automake bison dbus-devel flex flex-devel git
|
||||
BuildRequires: systemtap-sdt-devel libtool pkgconfig xorg-x11-util-macros xorg-x11-proto-devel
|
||||
BuildRequires: xorg-x11-font-utils libepoxy-devel systemd-devel xorg-x11-xtrans-devel
|
||||
BuildRequires: systemtap-sdt-devel libtool pkgconfig
|
||||
BuildRequires: xorg-x11-font-utils libepoxy-devel systemd-devel
|
||||
BuildRequires: libXfont2-devel libXau-devel libxkbfile-devel libXres-devel
|
||||
BuildRequires: libfontenc-devel libXtst-devel libXdmcp-devel libX11-devel libXext-devel
|
||||
BuildRequires: libXinerama-devel libXi-devel libXt-devel libdmx-devel libXmu-devel libXrender-devel
|
||||
BuildRequires: libXi-devel libXpm-devel libXaw-devel libXfixes-devel libepoxy-devel
|
||||
BuildRequires: wayland-devel wayland-protocols-devel egl-wayland-devel libxshmfence-devel
|
||||
BuildRequires: libXv-devel pixman-devel libpciaccess-devel openssl-devel kernel-headers
|
||||
BuildRequires: mesa-libGL-devel mesa-libEGL-devel mesa-libgbm-devel libdrm-devel
|
||||
BuildRequires: xcb-util-devel xcb-util-image-devel xcb-util-wm-devel libudev-devel
|
||||
BuildRequires: xcb-util-keysyms-devel xcb-util-renderutil-devel libselinux-devel
|
||||
BuildRequires: libXi-devel libXpm-devel libXaw-devel libXfixes-devel libepoxy-devel libXv-devel
|
||||
BuildRequires: wayland-devel wayland-protocols-devel egl-wayland-devel openssl-devel kernel-headers
|
||||
BuildRequires: mesa-libEGL-devel mesa-libgbm-devel libudev-devel xcb-util-devel
|
||||
BuildRequires: xcb-util-image-devel xcb-util-wm-devel xcb-util-keysyms-devel xcb-util-renderutil-devel
|
||||
BuildRequires: xorg-x11-xtrans-devel >= 1.3.2 xorg-x11-util-macros >= 1.17 xorg-x11-proto-devel >= 7.7
|
||||
BuildRequires: xorg-x11-font-utils >= 7.2 libselinux-devel >= 2.0.86 wayland-devel >= 1.3.0
|
||||
BuildRequires: libxshmfence-devel >= 1.1 pixman-devel >= 0.30.0 libdrm-devel >= 2.4.0
|
||||
BuildRequires: mesa-libGL-devel >= 9.2 libpciaccess-devel >= 0.13.1
|
||||
|
||||
%ifarch aarch64 %{arm} x86_64
|
||||
BuildRequires: libunwind-devel
|
||||
@ -97,12 +102,15 @@ Requires: pixman >= 0.30.0 xkeyboard-config xkbcomp
|
||||
Requires: system-setup-keyboard xorg-x11-drv-libinput libEGL
|
||||
Requires: xorg-x11-xauth
|
||||
|
||||
Obsoletes: %{name}-common %{name}-Xorg %{name}-Xnest %{name}-source %{name}-Xdmx %{name}-Xvfb %{name}-Xwayland
|
||||
Provides: %{name}-common %{name}-Xorg %{name}-Xorg%{?_isa} %{name}-Xnest %{name}-source %{name}-Xdmx %{name}-Xvfb %{name}-Xwayland %{name}-Xwayland%{?_isa}
|
||||
Obsoletes: %{name}-common < %{version}-%{release} %{name}-Xorg < %{version}-%{release} %{name}-Xnest < %{version}-%{release} %{name}-source %{name}-Xdmx < %{version}-%{release} %{name}-Xvfb < %{version}-%{release} %{name}-Xwayland < %{version}-%{release}
|
||||
Provides: %{name}-common = %{version}-%{release} %{name}-Xorg = %{version}-%{release} %{name}-Xorg%{?_isa} = %{version}-%{release} %{name}-Xnest = %{version}-%{release} %{name}-source = %{version}-%{release} %{name}-Xdmx = %{version}-%{release} %{name}-Xvfb = %{version}-%{release} %{name}-Xwayland = %{version}-%{release} %{name}-Xwayland%{?_isa} = %{version}-%{release}
|
||||
|
||||
Provides: Xorg = %{version}-%{release}
|
||||
Provides: Xserver
|
||||
Obsoletes: Xorg < %{version}-%{release}
|
||||
Provides: Xserver = %{version}-%{release}
|
||||
Obsoletes: Xserver < %{version}-%{release}
|
||||
Provides: xorg-x11-server-wrapper = %{version}-%{release}
|
||||
Obsoletes: xorg-x11-server-wrapper < %{version}-%{release}
|
||||
Provides: xserver-abi(ansic-%{ansic_major}) = %{ansic_minor}
|
||||
Provides: xserver-abi(videodrv-%{videodrv_major}) = %{videodrv_minor}
|
||||
Provides: xserver-abi(xinput-%{xinput_major}) = %{xinput_minor}
|
||||
@ -112,7 +120,8 @@ Provides: xorg-x11-glamor = %{version}-%{release}
|
||||
Obsoletes: xorg-x11-drv-modesetting < %{version}-%{release}
|
||||
Provides: xorg-x11-drv-modesetting = %{version}-%{release}
|
||||
Obsoletes: xorg-x11-drv-vmmouse < 13.1.0-4
|
||||
Provides: Xnest Xdmx Xvfb Xephyr
|
||||
Provides: Xnest = %{version}-%{release} Xdmx = %{version}-%{release} Xvfb = %{version}-%{release} Xephyr = %{version}-%{release}
|
||||
Obsoletes: Xnest < %{version}-%{release} Xdmx < %{version}-%{release} Xvfb < %{version}-%{release} Xephyr < %{version}-%{release}
|
||||
|
||||
%description
|
||||
X.Org X11 X server
|
||||
@ -311,6 +320,12 @@ find %{inst_srcdir}/hw/xfree86 -name \*.c -delete
|
||||
%{_libdir}/xorg/protocol.txt
|
||||
|
||||
%changelog
|
||||
* Tue Jul 28 2020 chengguipeng<chengguipeng1@huawei.com> - 1.20.8-1
|
||||
- Type:enhancement
|
||||
- Id:NA
|
||||
- SUG:NA
|
||||
- DESC:Update to 1.20.8
|
||||
|
||||
* Mon Mar 16 2020 openEuler Buildteam <buildteam@openeuler.org> - 1.20.6-4
|
||||
- Type:enhancement
|
||||
- Id:NA
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user