xorg-x11-server: Update to 1.20.8

Signed-off-by: chengguipeng <chengguipeng1@huawei.com>

	deleted:    xorg-server-1.20.6.tar.bz2
This commit is contained in:
chengguipeng 2020-07-28 15:25:13 +08:00
parent 99f8fb14db
commit 2527593ab1
29 changed files with 811 additions and 207 deletions

View File

@ -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)
&param, XI2, &mask);
break;
case XIGrabtypeKeycode:
- status = GrabKey(client, dev, mod_dev, stuff->detail,
- &param, 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,
+ &param, XI2, &mask);
break;
case XIGrabtypeEnter:
case XIGrabtypeFocusIn:
--
2.21.0

View File

@ -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> From: Hans de Goede <hdegoede@redhat.com>
Date: Thu, 29 Aug 2019 14:18:28 +0200 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 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
@ -43,13 +43,14 @@ to RRSetCrtc).
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
(cherry picked from commit 834a467af978ac7a24ed17b8c8e58b6cddb4faf9)
--- ---
dix/dispatch.c | 23 ++++++++++++++++++++++- dix/dispatch.c | 23 ++++++++++++++++++++++-
include/dix.h | 1 + include/dix.h | 1 +
2 files changed, 23 insertions(+), 1 deletion(-) 2 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/dix/dispatch.c b/dix/dispatch.c diff --git a/dix/dispatch.c b/dix/dispatch.c
index 176c7a0dd..ce84e6c8c 100644 index a33bfaa9e..2b1cf1a74 100644
--- a/dix/dispatch.c --- a/dix/dispatch.c
+++ b/dix/dispatch.c +++ b/dix/dispatch.c
@@ -148,6 +148,7 @@ xConnSetupPrefix connSetupPrefix; @@ -148,6 +148,7 @@ xConnSetupPrefix connSetupPrefix;
@ -111,5 +112,5 @@ index b6e2bcfde..d65060cb6 100644
extern _X_EXPORT void SetInputCheck(HWEventQueuePtr /*c0 */ , extern _X_EXPORT void SetInputCheck(HWEventQueuePtr /*c0 */ ,
HWEventQueuePtr /*c1 */ ); HWEventQueuePtr /*c1 */ );
-- --
2.23.0 2.25.2

View File

@ -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> From: Robert Mader <robert.mader@posteo.de>
Date: Mon, 22 Jan 2018 22:02:32 +0100 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 support
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 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> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
Acked-by: Michel Dänzer <mdaenzer@redhat.com> Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
(cherry picked from commit 47bba4625339592d08b375bcd8e51029c0000850)
--- ---
hw/xwayland/Makefile.am | 9 ++++++++- hw/xwayland/Makefile.am | 9 ++++++++-
hw/xwayland/meson.build | 3 +++ hw/xwayland/meson.build | 3 +++
hw/xwayland/xwayland.c | 3 +++ hw/xwayland/xwayland.c | 3 +++
hw/xwayland/xwayland.h | 2 ++ 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 diff --git a/hw/xwayland/Makefile.am b/hw/xwayland/Makefile.am
index bc1cb8506..49aae3d8b 100644 index bc1cb8506..49aae3d8b 100644
@ -80,10 +81,10 @@ index 36bf2133a..4a8d171bb 100644
xwayland_glamor = [] xwayland_glamor = []
eglstream_srcs = [] eglstream_srcs = []
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c 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 --- a/hw/xwayland/xwayland.c
+++ b/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); wl_registry_bind(registry, id, &zxdg_output_manager_v1_interface, 1);
xwl_screen_init_xdg_output(xwl_screen); xwl_screen_init_xdg_output(xwl_screen);
} }
@ -94,7 +95,7 @@ index baa08d87b..292f239e8 100644
else if (xwl_screen->glamor) { else if (xwl_screen->glamor) {
xwl_glamor_init_wl_registry(xwl_screen, registry, id, interface, xwl_glamor_init_wl_registry(xwl_screen, registry, id, interface,
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h 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 --- a/hw/xwayland/xwayland.h
+++ b/hw/xwayland/xwayland.h +++ b/hw/xwayland/xwayland.h
@@ -48,6 +48,7 @@ @@ -48,6 +48,7 @@
@ -114,5 +115,5 @@ index 0854df456..c4eabe4c3 100644
#define XWL_FORMAT_ARGB8888 (1 << 0) #define XWL_FORMAT_ARGB8888 (1 << 0)
-- --
2.23.0 2.25.2

View File

@ -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> From: Robert Mader <robert.mader@posteo.de>
Date: Tue, 2 Jul 2019 12:03:12 +0200 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 damage if available
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 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> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
Acked-by: Michel Dänzer <mdaenzer@redhat.com> Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@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-cursor.c | 12 ++++++------
hw/xwayland/xwayland-present.c | 6 +++--- hw/xwayland/xwayland-present.c | 6 +++---
@ -63,11 +64,11 @@ index 66720bcc0..cbc715061 100644
xwl_cursor->frame_cb = wl_surface_frame(xwl_cursor->surface); xwl_cursor->frame_cb = wl_surface_frame(xwl_cursor->surface);
wl_callback_add_listener(xwl_cursor->frame_cb, &frame_listener, xwl_cursor); 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 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 --- a/hw/xwayland/xwayland-present.c
+++ b/hw/xwayland/xwayland-present.c +++ b/hw/xwayland/xwayland-present.c
@@ -500,9 +500,9 @@ xwl_present_flip(WindowPtr present_window, @@ -495,9 +495,9 @@ xwl_present_flip(WindowPtr present_window,
xwl_present_window->frame_timer_firing = FALSE; /* Realign timer */
xwl_present_reset_timer(xwl_present_window); xwl_present_reset_timer(xwl_present_window);
- wl_surface_damage(xwl_window->surface, 0, 0, - wl_surface_damage(xwl_window->surface, 0, 0,
@ -80,10 +81,10 @@ index 2937d9c97..df771c30f 100644
wl_surface_commit(xwl_window->surface); wl_surface_commit(xwl_window->surface);
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c 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 --- a/hw/xwayland/xwayland.c
+++ b/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; return ret;
} }
@ -100,7 +101,7 @@ index 292f239e8..8b1c7918a 100644
static void static void
xwl_window_post_damage(struct xwl_window *xwl_window) 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) { if (RegionNumRects(region) > 256) {
box = RegionExtents(region); box = RegionExtents(region);
@ -120,8 +121,8 @@ index 292f239e8..8b1c7918a 100644
+ } + }
} }
xwl_window->frame_callback = wl_surface_frame(xwl_window->surface); xwl_window_create_frame_callback(xwl_window);
@@ -844,8 +856,13 @@ registry_global(void *data, struct wl_registry *registry, uint32_t id, @@ -904,8 +916,13 @@ registry_global(void *data, struct wl_registry *registry, uint32_t id,
struct xwl_screen *xwl_screen = data; struct xwl_screen *xwl_screen = data;
if (strcmp(interface, "wl_compositor") == 0) { if (strcmp(interface, "wl_compositor") == 0) {
@ -137,11 +138,11 @@ index 292f239e8..8b1c7918a 100644
else if (strcmp(interface, "wl_shm") == 0) { else if (strcmp(interface, "wl_shm") == 0) {
xwl_screen->shm = wl_registry_bind(registry, id, &wl_shm_interface, 1); xwl_screen->shm = wl_registry_bind(registry, id, &wl_shm_interface, 1);
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h 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 --- a/hw/xwayland/xwayland.h
+++ b/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_sync_events (struct xwl_screen *xwl_screen);
+void xwl_surface_damage(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); Bool xwl_screen_init_cursor(struct xwl_screen *xwl_screen);
-- --
2.23.0 2.25.2

View File

@ -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> From: Hans de Goede <hdegoede@redhat.com>
Date: Wed, 26 Jun 2019 16:46:54 +0200 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 output mode lists
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 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> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
Acked-by: Michel Dänzer <mdaenzer@redhat.com> Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@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-output.c | 112 ++++++++++++++++++++++++++++++++--
hw/xwayland/xwayland.c | 17 ++++++ hw/xwayland/xwayland.c | 17 ++++++
@ -162,10 +163,10 @@ index aa6f37864..2ccc3ca60 100644
xorg_list_for_each_entry(it, &xwl_screen->output_list, link) { xorg_list_for_each_entry(it, &xwl_screen->output_list, link) {
/* output done event is sent even when some property /* output done event is sent even when some property
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c 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 --- a/hw/xwayland/xwayland.c
+++ b/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); 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, xwl_window_set_allow_commits(struct xwl_window *xwl_window, Bool allow,
const char *debug_msg) const char *debug_msg)
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h 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 --- a/hw/xwayland/xwayland.h
+++ b/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); Bool xwl_screen_init_cursor(struct xwl_screen *xwl_screen);
struct xwl_screen *xwl_screen_get(ScreenPtr 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_tablet_tool_set_cursor(struct xwl_tablet_tool *tool);
void xwl_seat_set_cursor(struct xwl_seat *xwl_seat); void xwl_seat_set_cursor(struct xwl_seat *xwl_seat);
-- --
2.23.0 2.25.2

View File

@ -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> From: Robert Mader <robert.mader@posteo.de>
Date: Mon, 22 Jan 2018 17:57:38 +0100 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 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
@ -23,6 +23,7 @@ was set.
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
Acked-by: Michel Dänzer <mdaenzer@redhat.com> Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
(cherry picked from commit e89872f51aa834fa9d94a4ca4822f03b0341ab4f)
--- ---
hw/xwayland/xwayland-output.c | 81 +++++++++++++++++++++++++++++++++++ hw/xwayland/xwayland-output.c | 81 +++++++++++++++++++++++++++++++++++
1 file changed, 81 insertions(+) 1 file changed, 81 insertions(+)
@ -134,5 +135,5 @@ index 2ccc3ca60..67e99bdab 100644
return TRUE; return TRUE;
} }
-- --
2.23.0 2.25.2

View File

@ -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> From: Hans de Goede <hdegoede@redhat.com>
Date: Thu, 29 Aug 2019 22:45:12 +0200 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 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
@ -14,16 +14,17 @@ change emulation.
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
Acked-by: Michel Dänzer <mdaenzer@redhat.com> Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
(cherry picked from commit 905cb8b9e27add5f49a45fe167a0005bf05218bc)
--- ---
hw/xwayland/xwayland.c | 14 ++++++++++++++ hw/xwayland/xwayland.c | 14 ++++++++++++++
hw/xwayland/xwayland.h | 5 +++++ hw/xwayland/xwayland.h | 5 +++++
2 files changed, 19 insertions(+) 2 files changed, 19 insertions(+)
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c 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 --- a/hw/xwayland/xwayland.c
+++ b/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; return 0;
} }
@ -42,7 +43,7 @@ index a599c022a..2b6065f1a 100644
static struct xwl_window * static struct xwl_window *
xwl_window_get(WindowPtr 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; return FALSE;
if (!dixRegisterPrivateKey(&xwl_damage_private_key, PRIVATE_WINDOW, 0)) if (!dixRegisterPrivateKey(&xwl_damage_private_key, PRIVATE_WINDOW, 0))
return FALSE; return FALSE;
@ -57,21 +58,23 @@ index a599c022a..2b6065f1a 100644
dixSetPrivate(&pScreen->devPrivates, &xwl_screen_private_key, xwl_screen); dixSetPrivate(&pScreen->devPrivates, &xwl_screen_private_key, xwl_screen);
xwl_screen->screen = pScreen; xwl_screen->screen = pScreen;
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h 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 --- a/hw/xwayland/xwayland.h
+++ b/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; Bool xdg_output_done;
}; };
+struct xwl_client { +struct xwl_client {
+}; +};
+ +
void xwl_window_create_frame_callback(struct xwl_window *xwl_window);
+struct xwl_client *xwl_client_get(ClientPtr client); +struct xwl_client *xwl_client_get(ClientPtr client);
+ +
void xwl_sync_events (struct xwl_screen *xwl_screen); void xwl_sync_events (struct xwl_screen *xwl_screen);
void xwl_surface_damage(struct xwl_screen *xwl_screen, void xwl_surface_damage(struct xwl_screen *xwl_screen,
struct wl_surface *surface, struct wl_surface *surface,
-- --
2.23.0 2.25.2

View File

@ -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> From: Hans de Goede <hdegoede@redhat.com>
Date: Thu, 29 Aug 2019 23:04:36 +0200 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 per output emulated resolution
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
@ -24,6 +24,7 @@ change emulation.
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
Acked-by: Michel Dänzer <mdaenzer@redhat.com> Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@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-output.c | 67 +++++++++++++++++++++++++++++++++++
hw/xwayland/xwayland.h | 17 +++++++++ hw/xwayland/xwayland.h | 17 +++++++++
@ -108,10 +109,10 @@ index 67e99bdab..82ff5db70 100644
const int32_t xwl_output_fake_modes[][2] = { const int32_t xwl_output_fake_modes[][2] = {
/* 4:3 (1.33) */ /* 4:3 (1.33) */
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h 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 --- a/hw/xwayland/xwayland.h
+++ b/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; 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_emulated_mode emulated_modes[XWL_CLIENT_MAX_EMULATED_MODES];
}; };
struct xwl_client *xwl_client_get(ClientPtr client); void xwl_window_create_frame_callback(struct xwl_window *xwl_window);
@@ -424,6 +438,9 @@ void xwl_output_destroy(struct xwl_output *xwl_output); @@ -425,6 +439,9 @@ void xwl_output_destroy(struct xwl_output *xwl_output);
void xwl_output_remove(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); float VRefresh, Bool Reduced, Bool Interlaced);
-- --
2.23.0 2.25.2

View File

@ -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> From: Hans de Goede <hdegoede@redhat.com>
Date: Tue, 2 Jul 2019 11:55:26 +0200 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 change emulation using viewport
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 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> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
Acked-by: Michel Dänzer <mdaenzer@redhat.com> Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@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-input.c | 5 +
hw/xwayland/xwayland-output.c | 63 ++++++++++- hw/xwayland/xwayland-output.c | 63 ++++++++++-
@ -142,10 +143,10 @@ index 82ff5db70..99ab1b288 100644
static Bool static Bool
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c 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 --- a/hw/xwayland/xwayland.c
+++ b/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); return xwl_screen->rootless && xwl_screen_has_viewport_support(xwl_screen);
} }
@ -169,7 +170,7 @@ index 2b6065f1a..ec1b7eee4 100644
static void static void
xwl_window_set_allow_commits(struct xwl_window *xwl_window, Bool allow, xwl_window_set_allow_commits(struct xwl_window *xwl_window, Bool allow,
const char *debug_msg) 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); return dixLookupPrivate(&pixmap->devPrivates, &xwl_pixmap_private_key);
} }
@ -320,7 +321,7 @@ index 2b6065f1a..ec1b7eee4 100644
static void static void
xwl_window_init_allow_commits(struct xwl_window *xwl_window) 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->xwl_screen = xwl_screen;
xwl_window->window = window; xwl_window->window = window;
@ -329,15 +330,15 @@ index 2b6065f1a..ec1b7eee4 100644
xwl_window->surface = wl_compositor_create_surface(xwl_screen->compositor); xwl_window->surface = wl_compositor_create_surface(xwl_screen->compositor);
if (xwl_window->surface == NULL) { if (xwl_window->surface == NULL) {
ErrorF("wl_display_create_surface failed\n"); 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); dixSetPrivate(&window->devPrivates, &xwl_window_private_key, xwl_window);
xorg_list_init(&xwl_window->link_damage); xorg_list_init(&xwl_window->link_damage);
+ xorg_list_add(&xwl_window->link_window, &xwl_screen->window_list); + xorg_list_add(&xwl_window->link_window, &xwl_screen->window_list);
xwl_window_init_allow_commits(xwl_window); #ifdef GLAMOR_HAS_GBM
xorg_list_init(&xwl_window->frame_callback_list);
@@ -704,8 +868,12 @@ xwl_unrealize_window(WindowPtr window) @@ -716,8 +880,12 @@ xwl_unrealize_window(WindowPtr window)
if (!xwl_window) if (!xwl_window)
return ret; return ret;
@ -350,7 +351,7 @@ index 2b6065f1a..ec1b7eee4 100644
unregister_damage(window); unregister_damage(window);
if (xwl_window->frame_callback) 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); ensure_surface_for_window(window);
} }
@ -384,7 +385,7 @@ index 2b6065f1a..ec1b7eee4 100644
static void static void
frame_callback(void *data, frame_callback(void *data,
struct wl_callback *callback, 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->output_list);
xorg_list_init(&xwl_screen->seat_list); xorg_list_init(&xwl_screen->seat_list);
xorg_list_init(&xwl_screen->damage_window_list); xorg_list_init(&xwl_screen->damage_window_list);
@ -392,7 +393,7 @@ index 2b6065f1a..ec1b7eee4 100644
xwl_screen->depth = 24; xwl_screen->depth = 24;
xwl_screen->display = wl_display_connect(NULL); 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; xwl_screen->CloseScreen = pScreen->CloseScreen;
pScreen->CloseScreen = xwl_close_screen; pScreen->CloseScreen = xwl_close_screen;
@ -403,7 +404,7 @@ index 2b6065f1a..ec1b7eee4 100644
xwl_screen->SetWindowPixmap = pScreen->SetWindowPixmap; xwl_screen->SetWindowPixmap = pScreen->SetWindowPixmap;
pScreen->SetWindowPixmap = xwl_set_window_pixmap; pScreen->SetWindowPixmap = xwl_set_window_pixmap;
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h 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 --- a/hw/xwayland/xwayland.h
+++ b/hw/xwayland/xwayland.h +++ b/hw/xwayland/xwayland.h
@@ -135,10 +135,12 @@ struct xwl_screen { @@ -135,10 +135,12 @@ struct xwl_screen {
@ -433,7 +434,7 @@ index d0e87a89d..b52de11d2 100644
struct wl_callback *frame_callback; struct wl_callback *frame_callback;
Bool allow_commits; Bool allow_commits;
#ifdef GLAMOR_HAS_GBM #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); struct xwl_screen *xwl_screen_get(ScreenPtr screen);
Bool xwl_screen_has_resolution_change_emulation(struct xwl_screen *xwl_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_tablet_tool_set_cursor(struct xwl_tablet_tool *tool);
void xwl_seat_set_cursor(struct xwl_seat *xwl_seat); 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_emulated_mode *xwl_output_get_emulated_mode_for_client(
struct xwl_output *xwl_output, ClientPtr client); struct xwl_output *xwl_output, ClientPtr client);
@ -457,5 +458,5 @@ index d0e87a89d..b52de11d2 100644
float VRefresh, Bool Reduced, Bool Interlaced); float VRefresh, Bool Reduced, Bool Interlaced);
-- --
2.23.0 2.25.2

View File

@ -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> From: Hans de Goede <hdegoede@redhat.com>
Date: Mon, 8 Jul 2019 14:00:27 +0200 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 function
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
@ -14,6 +14,7 @@ Wayland viewport extension.
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
Acked-by: Michel Dänzer <mdaenzer@redhat.com> Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
(cherry picked from commit 43c80078126f6f33c6ab7d3cf4668733bde03366)
--- ---
hw/xwayland/xwayland-vidmode.c | 51 +++++++++++++++++++--------------- hw/xwayland/xwayland-vidmode.c | 51 +++++++++++++++++++---------------
1 file changed, 28 insertions(+), 23 deletions(-) 1 file changed, 28 insertions(+), 23 deletions(-)
@ -96,5 +97,5 @@ index 0bcd11401..a59c9f6a9 100644
return TRUE; return TRUE;
} }
-- --
2.23.0 2.25.2

View File

@ -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> From: Hans de Goede <hdegoede@redhat.com>
Date: Mon, 8 Jul 2019 18:35:27 +0200 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 to the vidmode code
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 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> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
Acked-by: Michel Dänzer <mdaenzer@redhat.com> Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
(cherry picked from commit bcad1b813a04b9f3ff225f57a4baad09bd6315b9)
--- ---
hw/xwayland/xwayland-vidmode.c | 90 +++++++++++++++++++++------------- hw/xwayland/xwayland-vidmode.c | 90 +++++++++++++++++++++-------------
1 file changed, 56 insertions(+), 34 deletions(-) 1 file changed, 56 insertions(+), 34 deletions(-)
@ -188,5 +189,5 @@ index a59c9f6a9..e9aea7269 100644
static void static void
-- --
2.23.0 2.25.2

View File

@ -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> From: Hans de Goede <hdegoede@redhat.com>
Date: Tue, 9 Jul 2019 09:31:13 +0200 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 support
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
@ -13,6 +13,7 @@ change the resolution when going fullscreen.
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
Acked-by: Michel Dänzer <mdaenzer@redhat.com> Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
(cherry picked from commit 38de6260816674b5430144cc38a8a27d93d1bf19)
--- ---
hw/xwayland/xwayland-vidmode.c | 130 ++++++++++++++++++++++----------- hw/xwayland/xwayland-vidmode.c | 130 ++++++++++++++++++++++-----------
1 file changed, 86 insertions(+), 44 deletions(-) 1 file changed, 86 insertions(+), 44 deletions(-)
@ -231,5 +232,5 @@ index e9aea7269..56aac693a 100644
static Bool static Bool
-- --
2.23.0 2.25.2

View File

@ -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> From: Hans de Goede <hdegoede@redhat.com>
Date: Mon, 26 Aug 2019 12:26:34 +0200 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 Add extra test
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
@ -19,15 +19,16 @@ Xwayland.
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
Acked-by: Michel Dänzer <mdaenzer@redhat.com> Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
(cherry picked from commit 0c305dbff8a44f3fa3d6aefd372a967029a7a527)
--- ---
hw/xwayland/xwayland.c | 17 +++++++++++++++++ hw/xwayland/xwayland.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+) 1 file changed, 17 insertions(+)
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c 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 --- a/hw/xwayland/xwayland.c
+++ b/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

View File

@ -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> From: Hans de Goede <hdegoede@redhat.com>
Date: Mon, 2 Sep 2019 17:32:45 +0200 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 property for resolution emulation
MIME-Version: 1.0 MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset=UTF-8
@ -29,6 +29,7 @@ be equal to the new resolution.
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
Acked-by: Michel Dänzer <mdaenzer@redhat.com> Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@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-output.c | 77 +++++++++++++++++++++++++++++++++++
hw/xwayland/xwayland.c | 23 +++++++++++ hw/xwayland/xwayland.c | 23 +++++++++++
@ -138,10 +139,10 @@ index 99ab1b288..20c254962 100644
static void static void
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c 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 --- a/hw/xwayland/xwayland.c
+++ b/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); xwl_window_check_resolution_change_emulation(xwl_window);
} }
@ -169,7 +170,7 @@ index 58252d2e8..75ff9f011 100644
static void static void
xwl_window_init_allow_commits(struct xwl_window *xwl_window) 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; return FALSE;
} }
@ -179,10 +180,10 @@ index 58252d2e8..75ff9f011 100644
} }
diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h 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 --- a/hw/xwayland/xwayland.h
+++ b/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); 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); void xwl_screen_check_resolution_change_emulation(struct xwl_screen *xwl_screen);
Bool xwl_window_has_viewport_enabled(struct xwl_window *xwl_window); 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_tablet_tool_set_cursor(struct xwl_tablet_tool *tool);
void xwl_seat_set_cursor(struct xwl_seat *xwl_seat); 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, void xwl_output_set_emulated_mode(struct xwl_output *xwl_output,
ClientPtr client, RRModePtr mode, ClientPtr client, RRModePtr mode,
Bool from_vidmode); Bool from_vidmode);
@ -200,5 +201,5 @@ index b52de11d2..2d825ee8c 100644
RRModePtr xwayland_cvt(int HDisplay, int VDisplay, RRModePtr xwayland_cvt(int HDisplay, int VDisplay,
float VRefresh, Bool Reduced, Bool Interlaced); float VRefresh, Bool Reduced, Bool Interlaced);
-- --
2.23.0 2.25.2

View 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

View 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

View 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

View File

@ -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

View 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

View File

@ -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

View 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

View File

@ -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> From: Hans de Goede <hdegoede@redhat.com>
Date: Mon, 7 Oct 2019 14:27:49 +0200 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 when screen rotation is used
The code building the mode-list does the following to deal with screen 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 duplicate this code, instead we can simply check that the passed in mode
is modes[0] which always is the actual output 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> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
(cherry picked from commit 88342353de45e64f408c38bb10cd1506ba0f159a)
--- ---
hw/xwayland/xwayland-output.c | 8 ++++++-- hw/xwayland/xwayland-output.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-) 1 file changed, 6 insertions(+), 2 deletions(-)
@ -57,5 +59,5 @@ index 20c254962..7d705d919 100644
else else
xwl_output_add_emulated_mode_for_client(xwl_output, client, mode, from_vidmode); xwl_output_add_emulated_mode_for_client(xwl_output, client, mode, from_vidmode);
-- --
2.23.0 2.25.2

View File

@ -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> From: Hans de Goede <hdegoede@redhat.com>
Date: Mon, 4 Nov 2019 11:46:49 +0100 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 xwl_window_check_resolution_change_emulation() on newly created O-R windows
Some clients, which use vidmode to change the resolution when going fullscreen, 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 This fixes ClanLib-0.6.x and alleggl-4.4.x using apps not properly
fullscreening. fullscreening.
Acked-by: Olivier Fourdan <ofourdan@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
(cherry picked from commit 4cfc2677f5c82ca5db0919de549b9b077f1ba113)
--- ---
hw/xwayland/xwayland.c | 5 +++++ hw/xwayland/xwayland.c | 5 +++++
1 file changed, 5 insertions(+) 1 file changed, 5 insertions(+)
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c 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 --- a/hw/xwayland/xwayland.c
+++ b/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); 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 */ + /* CSD or O-R toplevel window, check viewport on creation */
+ xwl_window_check_resolution_change_emulation(xwl_window); + xwl_window_check_resolution_change_emulation(xwl_window);
+ } + }
@ -42,5 +44,5 @@ index 75ff9f011..ed1d671ff 100644
err_surf: err_surf:
-- --
2.23.0 2.25.2

View File

@ -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> From: Hans de Goede <hdegoede@redhat.com>
Date: Mon, 4 Nov 2019 14:32:29 +0100 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 _XWAYLAND_RANDR_EMU_MONITOR_RECTS prop on new windows
For window-manager managed windows, xwl_realize_window is only called for 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 This fixes apps using the ogre3d library always running at the
monitors native resolution. monitors native resolution.
Acked-by: Olivier Fourdan <ofourdan@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
(cherry picked from commit 148f428dfccf606b932a00d5a00af06e8dca8a7e)
--- ---
hw/xwayland/xwayland.c | 10 +++++++--- hw/xwayland/xwayland.c | 12 +++++++++---
1 file changed, 7 insertions(+), 3 deletions(-) 1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c 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 --- a/hw/xwayland/xwayland.c
+++ b/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); xwl_window_init_allow_commits(xwl_window);
- if (!xwl_screen_client_is_window_manager(xwl_screen, wClient(window))) { - if (!window_is_wm_window(window)) {
+ /* When a new windom-manager decoration window is realized, then the randr + /* When a new window-manager window is realized, then the randr emulation
+ * emulation props have not been set on the managed client window yet. + * 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_is_wm_window(window)) {
+ if (window->firstChild && window->firstChild == window->lastChild) + toplevel = window_get_client_toplevel(window);
+ xwl_output_set_window_randr_emu_props(xwl_screen, window->firstChild); + if (toplevel)
+ xwl_output_set_window_randr_emu_props(xwl_screen, toplevel);
+ } else { + } else {
/* CSD or O-R toplevel window, check viewport on creation */ /* CSD or O-R toplevel window, check viewport on creation */
xwl_window_check_resolution_change_emulation(xwl_window); 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; return FALSE;
} }
@ -61,5 +72,5 @@ index ed1d671ff..1ce29c51c 100644
} }
-- --
2.23.0 2.25.2

View File

@ -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> From: Hans de Goede <hdegoede@redhat.com>
Date: Mon, 4 Nov 2019 15:01:18 +0100 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() 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 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 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. 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> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
(cherry picked from commit d4faab8708779df265239b203ed5f020bff681bf)
--- ---
hw/xwayland/xwayland-output.c | 6 ++---- hw/xwayland/xwayland-output.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-) 1 file changed, 2 insertions(+), 4 deletions(-)
@ -43,5 +45,5 @@ index 7d705d919..084b669e4 100644
static void static void
-- --
2.23.0 2.25.2

0
driver-abi-rebuild.sh Executable file → Normal file
View File

Binary file not shown.

BIN
xorg-server-1.20.8.tar.bz2 Normal file

Binary file not shown.

View File

@ -7,7 +7,7 @@
%global ansic_major 0 %global ansic_major 0
%global ansic_minor 4 %global ansic_minor 4
%global videodrv_major 24 %global videodrv_major 24
%global videodrv_minor 0 %global videodrv_minor 1
%global xinput_major 24 %global xinput_major 24
%global xinput_minor 1 %global xinput_minor 1
%global extension_major 10 %global extension_major 10
@ -15,8 +15,8 @@
%global pkgname xorg-server %global pkgname xorg-server
Name: xorg-x11-server Name: xorg-x11-server
Version: 1.20.6 Version: 1.20.8
Release: 4 Release: 1
Summary: X.Org X11 X server Summary: X.Org X11 X server
License: MIT and GPLv2 License: MIT and GPLv2
URL: https://www.x.org URL: https://www.x.org
@ -36,58 +36,63 @@ Source31: xserver-sdk-abi-requires.git
Source40: driver-abi-rebuild.sh Source40: driver-abi-rebuild.sh
# From Debian use intel ddx driver only for gen4 and older chipsets # 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 # 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 # Default to va_gl on intel i965 as we use the modesetting drv there
# va_gl should probably just be the default everywhere ? # 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 # 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 # because the display-managers are not ready yet, do not upstream
Patch6004: 0001-Fedora-hack-Make-the-suid-root-wrapper-always-start-.patch Patch0004: 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
# Backports from current stable "server-1.20-branch":
# Backports from "master" upstream:
# Backported Xwayland randr resolution change emulation support # Backported Xwayland randr resolution change emulation support
Patch6006: 0001-dix-Add-GetCurrentClient-helper.patch Patch0005: 0001-dix-Add-GetCurrentClient-helper.patch
Patch6007: 0002-xwayland-Add-wp_viewport-wayland-extension-support.patch Patch0006: 0002-xwayland-Add-wp_viewport-wayland-extension-support.patch
Patch6008: 0003-xwayland-Use-buffer_damage-instead-of-surface-damage.patch Patch0007: 0003-xwayland-Use-buffer_damage-instead-of-surface-damage.patch
Patch6009: 0004-xwayland-Add-fake-output-modes-to-xrandr-output-mode.patch Patch0008: 0004-xwayland-Add-fake-output-modes-to-xrandr-output-mode.patch
Patch6010: 0005-xwayland-Use-RandR-1.2-interface-rev-2.patch Patch0009: 0005-xwayland-Use-RandR-1.2-interface-rev-2.patch
Patch6011: 0006-xwayland-Add-per-client-private-data.patch Patch0010: 0006-xwayland-Add-per-client-private-data.patch
Patch6012: 0007-xwayland-Add-support-for-storing-per-client-per-outp.patch Patch0011: 0007-xwayland-Add-support-for-storing-per-client-per-outp.patch
Patch6013: 0008-xwayland-Add-support-for-randr-resolution-change-emu.patch Patch0012: 0008-xwayland-Add-support-for-randr-resolution-change-emu.patch
Patch6014: 0009-xwayland-Add-xwlRRModeToDisplayMode-helper-function.patch Patch0013: 0009-xwayland-Add-xwlRRModeToDisplayMode-helper-function.patch
Patch6015: 0010-xwayland-Add-xwlVidModeGetCurrentRRMode-helper-to-th.patch Patch0014: 0010-xwayland-Add-xwlVidModeGetCurrentRRMode-helper-to-th.patch
Patch6016: 0011-xwayland-Add-vidmode-mode-changing-emulation-support.patch Patch0015: 0011-xwayland-Add-vidmode-mode-changing-emulation-support.patch
Patch6017: 0012-xwayland-xwl_window_should_enable_viewport-Add-extra.patch Patch0016: 0012-xwayland-xwl_window_should_enable_viewport-Add-extra.patch
Patch6018: 0013-xwayland-Set-_XWAYLAND_RANDR_EMU_MONITOR_RECTS-prope.patch Patch0017: 0013-xwayland-Set-_XWAYLAND_RANDR_EMU_MONITOR_RECTS-prope.patch
Patch6019: 0014-xwayland-Fix-emulated-modes-not-being-removed-when-s.patch Patch0018: 0014-xwayland-Cache-client-id-for-the-window-manager-clie.patch
Patch6020: 0015-xwayland-Call-xwl_window_check_resolution_change_emu.patch Patch0019: 0015-xwayland-Reuse-viewport-instead-of-recreating.patch
Patch6021: 0016-xwayland-Fix-setting-of-_XWAYLAND_RANDR_EMU_MONITOR_.patch Patch0020: 0016-xwayland-Recurse-on-finding-the-none-wm-owner.patch
Patch6022: 0017-xwayland-Remove-unnecessary-xwl_window_is_toplevel-c.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
Patch6023: xorg-s11-server-CVE-2018-20839.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: 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: systemtap-sdt-devel libtool pkgconfig
BuildRequires: xorg-x11-font-utils libepoxy-devel systemd-devel xorg-x11-xtrans-devel BuildRequires: xorg-x11-font-utils libepoxy-devel systemd-devel
BuildRequires: libXfont2-devel libXau-devel libxkbfile-devel libXres-devel BuildRequires: libXfont2-devel libXau-devel libxkbfile-devel libXres-devel
BuildRequires: libfontenc-devel libXtst-devel libXdmcp-devel libX11-devel libXext-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: libXinerama-devel libXi-devel libXt-devel libdmx-devel libXmu-devel libXrender-devel
BuildRequires: libXi-devel libXpm-devel libXaw-devel libXfixes-devel libepoxy-devel BuildRequires: libXi-devel libXpm-devel libXaw-devel libXfixes-devel libepoxy-devel libXv-devel
BuildRequires: wayland-devel wayland-protocols-devel egl-wayland-devel libxshmfence-devel BuildRequires: wayland-devel wayland-protocols-devel egl-wayland-devel openssl-devel kernel-headers
BuildRequires: libXv-devel pixman-devel libpciaccess-devel openssl-devel kernel-headers BuildRequires: mesa-libEGL-devel mesa-libgbm-devel libudev-devel xcb-util-devel
BuildRequires: mesa-libGL-devel mesa-libEGL-devel mesa-libgbm-devel libdrm-devel BuildRequires: xcb-util-image-devel xcb-util-wm-devel xcb-util-keysyms-devel xcb-util-renderutil-devel
BuildRequires: xcb-util-devel xcb-util-image-devel xcb-util-wm-devel libudev-devel BuildRequires: xorg-x11-xtrans-devel >= 1.3.2 xorg-x11-util-macros >= 1.17 xorg-x11-proto-devel >= 7.7
BuildRequires: xcb-util-keysyms-devel xcb-util-renderutil-devel libselinux-devel 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 %ifarch aarch64 %{arm} x86_64
BuildRequires: libunwind-devel 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: system-setup-keyboard xorg-x11-drv-libinput libEGL
Requires: xorg-x11-xauth Requires: xorg-x11-xauth
Obsoletes: %{name}-common %{name}-Xorg %{name}-Xnest %{name}-source %{name}-Xdmx %{name}-Xvfb %{name}-Xwayland 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 %{name}-Xorg %{name}-Xorg%{?_isa} %{name}-Xnest %{name}-source %{name}-Xdmx %{name}-Xvfb %{name}-Xwayland %{name}-Xwayland%{?_isa} 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: Xorg = %{version}-%{release}
Provides: Xserver Obsoletes: Xorg < %{version}-%{release}
Provides: Xserver = %{version}-%{release}
Obsoletes: Xserver < %{version}-%{release}
Provides: xorg-x11-server-wrapper = %{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(ansic-%{ansic_major}) = %{ansic_minor}
Provides: xserver-abi(videodrv-%{videodrv_major}) = %{videodrv_minor} Provides: xserver-abi(videodrv-%{videodrv_major}) = %{videodrv_minor}
Provides: xserver-abi(xinput-%{xinput_major}) = %{xinput_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} Obsoletes: xorg-x11-drv-modesetting < %{version}-%{release}
Provides: xorg-x11-drv-modesetting = %{version}-%{release} Provides: xorg-x11-drv-modesetting = %{version}-%{release}
Obsoletes: xorg-x11-drv-vmmouse < 13.1.0-4 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 %description
X.Org X11 X server X.Org X11 X server
@ -311,6 +320,12 @@ find %{inst_srcdir}/hw/xfree86 -name \*.c -delete
%{_libdir}/xorg/protocol.txt %{_libdir}/xorg/protocol.txt
%changelog %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 * Mon Mar 16 2020 openEuler Buildteam <buildteam@openeuler.org> - 1.20.6-4
- Type:enhancement - Type:enhancement
- Id:NA - Id:NA