diff options
-rw-r--r-- | .SRCINFO | 10 | ||||
-rw-r--r-- | 0001-xwayland-support-HiDPI-scale.patch | 58 | ||||
-rw-r--r-- | 0002-Fix-configure_notify-event.patch | 8 | ||||
-rw-r--r-- | 0003-Fix-size-hints-under-Xwayland-scaling.patch | 8 | ||||
-rw-r--r-- | PKGBUILD | 10 |
5 files changed, 58 insertions, 36 deletions
@@ -1,7 +1,7 @@ pkgbase = wlroots-hidpi-xprop-git pkgdesc = Modular Wayland compositor library (git version, with patches) - pkgver = 0.17.0.20230803.144028 - pkgrel = 2 + pkgver = 0.17.0.20231026.190508 + pkgrel = 1 url = https://gitlab.freedesktop.org/wlroots/wlroots install = wlroots-hidpi-xprop-git.install arch = x86_64 @@ -39,8 +39,8 @@ pkgbase = wlroots-hidpi-xprop-git source = 0002-Fix-configure_notify-event.patch source = 0003-Fix-size-hints-under-Xwayland-scaling.patch sha512sums = SKIP - sha512sums = e94c5aafa13d7b78a9e0245a78c6b937f64ac78472f22afc2ca712c330212d6f69579139b103b0fc1515e901725a91ed8132d5be58be300fd45ca57c8ca80761 - sha512sums = c89c9aaa26457e64dff3530c9042afbbfd45a41dcffb01020c512eaaa359811bc16e929003ef56eb6b77f380ac0381b8382cc09da6e78ca0e6d0b2642b2a68bf - sha512sums = d54d1faf46a390492ae2bc44238185aead9231b41dbf76567dd0dc4b85579edd5bef29a5ee22062993d06bbf24954216ebfe9a3da4ee67cd5c8b5121925e3483 + sha512sums = ca05b46c8222e6982c848944ff2afe7765a2e76bb90e29c9d5b5dde9b51a0038bce8b0d52d01c390c970319ef10614ab1454a66940bf3a5b6193fc7f189afe6b + sha512sums = 484c8a6848b1409a16403bf0c3e366bf5203716824c24e16efcdcdb71ff34c42b5da6e3da338fafea70ad80fcdd3d6e9f070fb809093d8b0b08ee0b2c95a4de4 + sha512sums = 8e3e77f6df204b6e5aa770be61fc8a6525e295cc8acdb0084ce66463e78f11702cf066640b20d7ff9560bdcdf7fa626db2e90651dcd42670250f45ac0f636854 pkgname = wlroots-hidpi-xprop-git diff --git a/0001-xwayland-support-HiDPI-scale.patch b/0001-xwayland-support-HiDPI-scale.patch index 43d76b413793..cff518ccb0be 100644 --- a/0001-xwayland-support-HiDPI-scale.patch +++ b/0001-xwayland-support-HiDPI-scale.patch @@ -1,4 +1,4 @@ -From 179258208d98fe3755b414749e9776e96d3b1dad Mon Sep 17 00:00:00 2001 +From 9f2755f083be057edd1f70f21b5c6e83758c5488 Mon Sep 17 00:00:00 2001 From: lilydjwg <lilydjwg@gmail.com> Date: Wed, 17 Nov 2021 19:34:58 +0800 Subject: [PATCH 1/3] xwayland: support HiDPI scale @@ -6,22 +6,22 @@ Subject: [PATCH 1/3] xwayland: support HiDPI scale This supports the xorg-xwayland patch at https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/733 --- include/xwayland/xwm.h | 2 ++ - xwayland/xwm.c | 51 +++++++++++++++++++++++++++++++----------- - 2 files changed, 40 insertions(+), 13 deletions(-) + xwayland/xwm.c | 63 +++++++++++++++++++++++++++++------------- + 2 files changed, 46 insertions(+), 19 deletions(-) diff --git a/include/xwayland/xwm.h b/include/xwayland/xwm.h -index 3d540522..33ff1478 100644 +index da3515da..b6ad4492 100644 --- a/include/xwayland/xwm.h +++ b/include/xwayland/xwm.h -@@ -88,6 +88,7 @@ enum atom_name { - DND_ACTION_PRIVATE, +@@ -89,6 +89,7 @@ enum atom_name { NET_CLIENT_LIST, NET_CLIENT_LIST_STACKING, -+ XWAYLAND_GLOBAL_OUTPUT_SCALE, + NET_WORKAREA, ++ XWAYLAND_GLOBAL_OUTPUT_SCALE, ATOM_LAST // keep last }; -@@ -96,6 +97,7 @@ struct wlr_xwm { +@@ -97,6 +98,7 @@ struct wlr_xwm { struct wl_event_source *event_source; struct wlr_seat *seat; uint32_t ping_timeout; @@ -30,7 +30,7 @@ index 3d540522..33ff1478 100644 xcb_atom_t atoms[ATOM_LAST]; xcb_connection_t *xcb_conn; diff --git a/xwayland/xwm.c b/xwayland/xwm.c -index 0c30d8f6..59e9ce06 100644 +index db4a8c0f..8167a2fc 100644 --- a/xwayland/xwm.c +++ b/xwayland/xwm.c @@ -19,6 +19,14 @@ @@ -48,15 +48,15 @@ index 0c30d8f6..59e9ce06 100644 static const char *const atom_map[ATOM_LAST] = { [WL_SURFACE_ID] = "WL_SURFACE_ID", [WL_SURFACE_SERIAL] = "WL_SURFACE_SERIAL", -@@ -90,6 +98,7 @@ static const char *const atom_map[ATOM_LAST] = { - [DND_ACTION_PRIVATE] = "XdndActionPrivate", +@@ -91,6 +99,7 @@ static const char *const atom_map[ATOM_LAST] = { [NET_CLIENT_LIST] = "_NET_CLIENT_LIST", [NET_CLIENT_LIST_STACKING] = "_NET_CLIENT_LIST_STACKING", + [NET_WORKAREA] = "_NET_WORKAREA", + [XWAYLAND_GLOBAL_OUTPUT_SCALE] = "_XWAYLAND_GLOBAL_OUTPUT_SCALE", }; #define STARTUP_INFO_REMOVE_PREFIX "remove: ID=" -@@ -962,8 +971,8 @@ static void xwm_handle_create_notify(struct wlr_xwm *xwm, +@@ -957,8 +966,8 @@ static void xwm_handle_create_notify(struct wlr_xwm *xwm, return; } @@ -67,7 +67,7 @@ index 0c30d8f6..59e9ce06 100644 } static void xwm_handle_destroy_notify(struct wlr_xwm *xwm, -@@ -994,10 +1003,10 @@ static void xwm_handle_configure_request(struct wlr_xwm *xwm, +@@ -989,10 +998,10 @@ static void xwm_handle_configure_request(struct wlr_xwm *xwm, struct wlr_xwayland_surface_configure_event wlr_event = { .surface = surface, @@ -82,7 +82,7 @@ index 0c30d8f6..59e9ce06 100644 .mask = mask, }; -@@ -1012,14 +1021,14 @@ static void xwm_handle_configure_notify(struct wlr_xwm *xwm, +@@ -1007,14 +1016,14 @@ static void xwm_handle_configure_notify(struct wlr_xwm *xwm, } bool geometry_changed = @@ -103,7 +103,7 @@ index 0c30d8f6..59e9ce06 100644 } if (xsurface->override_redirect != ev->override_redirect) { -@@ -1136,7 +1145,22 @@ static void xwm_handle_unmap_notify(struct wlr_xwm *xwm, +@@ -1131,7 +1140,22 @@ static void xwm_handle_unmap_notify(struct wlr_xwm *xwm, static void xwm_handle_property_notify(struct wlr_xwm *xwm, xcb_property_notify_event_t *ev) { struct wlr_xwayland_surface *xsurface = lookup_surface(xwm, ev->window); @@ -126,7 +126,7 @@ index 0c30d8f6..59e9ce06 100644 return; } -@@ -1770,7 +1794,7 @@ void wlr_xwayland_surface_configure(struct wlr_xwayland_surface *xsurface, +@@ -1775,7 +1799,7 @@ void wlr_xwayland_surface_configure(struct wlr_xwayland_surface *xsurface, uint32_t mask = XCB_CONFIG_WINDOW_X | XCB_CONFIG_WINDOW_Y | XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT | XCB_CONFIG_WINDOW_BORDER_WIDTH; @@ -135,7 +135,7 @@ index 0c30d8f6..59e9ce06 100644 xcb_configure_window(xwm->xcb_conn, xsurface->window_id, mask, values); // If the window size did not change, then we cannot rely on -@@ -2123,6 +2147,7 @@ struct wlr_xwm *xwm_create(struct wlr_xwayland *xwayland, int wm_fd) { +@@ -2128,6 +2152,7 @@ struct wlr_xwm *xwm_create(struct wlr_xwayland *xwayland, int wm_fd) { wl_list_init(&xwm->pending_startup_ids); xwm->ping_timeout = 10000; @@ -143,6 +143,28 @@ index 0c30d8f6..59e9ce06 100644 xwm->xcb_conn = xcb_connect_to_fd(wm_fd, NULL); int rc = xcb_connection_has_error(xwm->xcb_conn); +@@ -2335,15 +2360,15 @@ void wlr_xwayland_set_workareas(struct wlr_xwayland *wlr_xwayland, + if (!data) { + return; + } +- ++ struct wlr_xwm *xwm = wlr_xwayland->xwm; ++ + for (size_t i = 0; i < num_workareas; i++) { +- data[4 * i] = workareas[i].x; +- data[4 * i + 1] = workareas[i].y; +- data[4 * i + 2] = workareas[i].width; +- data[4 * i + 3] = workareas[i].height; ++ data[4 * i] = scale(xwm, workareas[i].x); ++ data[4 * i + 1] = scale(xwm, workareas[i].y); ++ data[4 * i + 2] = scale(xwm, workareas[i].width); ++ data[4 * i + 3] = scale(xwm, workareas[i].height); + } + +- struct wlr_xwm *xwm = wlr_xwayland->xwm; + xcb_change_property(xwm->xcb_conn, XCB_PROP_MODE_REPLACE, + xwm->screen->root, xwm->atoms[NET_WORKAREA], + XCB_ATOM_CARDINAL, 32, 4 * num_workareas, data); -- -2.41.0 +2.42.0 diff --git a/0002-Fix-configure_notify-event.patch b/0002-Fix-configure_notify-event.patch index 6fdf60ff1704..c8f2ec8f4b7e 100644 --- a/0002-Fix-configure_notify-event.patch +++ b/0002-Fix-configure_notify-event.patch @@ -1,4 +1,4 @@ -From c9315b2f8c84d5f1b0b14f863af6f73bc3ac95c5 Mon Sep 17 00:00:00 2001 +From 00ab2bf6ed70908357f4c1ca2204e83858d6de02 Mon Sep 17 00:00:00 2001 From: q234rty <q23456yuiop@gmail.com> Date: Tue, 21 Feb 2023 23:56:26 +0800 Subject: [PATCH 2/3] Fix configure_notify event @@ -8,10 +8,10 @@ Subject: [PATCH 2/3] Fix configure_notify event 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/xwayland/xwm.c b/xwayland/xwm.c -index 59e9ce06..295f4d49 100644 +index 8167a2fc..1c8cab70 100644 --- a/xwayland/xwm.c +++ b/xwayland/xwm.c -@@ -1807,10 +1807,10 @@ void wlr_xwayland_surface_configure(struct wlr_xwayland_surface *xsurface, +@@ -1812,10 +1812,10 @@ void wlr_xwayland_surface_configure(struct wlr_xwayland_surface *xsurface, .response_type = XCB_CONFIGURE_NOTIFY, .event = xsurface->window_id, .window = xsurface->window_id, @@ -27,5 +27,5 @@ index 59e9ce06..295f4d49 100644 xcb_send_event(xwm->xcb_conn, 0, xsurface->window_id, -- -2.41.0 +2.42.0 diff --git a/0003-Fix-size-hints-under-Xwayland-scaling.patch b/0003-Fix-size-hints-under-Xwayland-scaling.patch index a63a619f1a6e..457a663e4ac3 100644 --- a/0003-Fix-size-hints-under-Xwayland-scaling.patch +++ b/0003-Fix-size-hints-under-Xwayland-scaling.patch @@ -1,4 +1,4 @@ -From 7220722f9173a90479d81f4b359cf91956f59f28 Mon Sep 17 00:00:00 2001 +From a10d70f2b1314059835cba48875b1048e6203500 Mon Sep 17 00:00:00 2001 From: Patrick Taibel <git@pmt97.com> Date: Sat, 12 Aug 2023 16:05:28 +0800 Subject: [PATCH 3/3] Fix size hints under Xwayland scaling @@ -8,10 +8,10 @@ Subject: [PATCH 3/3] Fix size hints under Xwayland scaling 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/xwayland/xwm.c b/xwayland/xwm.c -index 295f4d49..674a32e1 100644 +index 1c8cab70..9e16969e 100644 --- a/xwayland/xwm.c +++ b/xwayland/xwm.c -@@ -729,17 +729,34 @@ static void read_surface_normal_hints(struct wlr_xwm *xwm, +@@ -723,17 +723,34 @@ static void read_surface_normal_hints(struct wlr_xwm *xwm, xsurface->size_hints->base_width = -1; xsurface->size_hints->base_height = -1; } else if (!has_base_size_hints) { @@ -50,5 +50,5 @@ index 295f4d49..674a32e1 100644 #define MWM_HINTS_FLAGS_FIELD 0 -- -2.41.0 +2.42.0 @@ -3,8 +3,8 @@ # Contributor: Adrian Perez de Castro <aperez@igalia.com> # Contributor: Antonin Décimo <antonin dot decimo at gmail dot com> pkgname=wlroots-hidpi-xprop-git -pkgver=0.17.0.20230803.144028 -pkgrel=2 +pkgver=0.17.0.20231026.190508 +pkgrel=1 license=(MIT) pkgdesc='Modular Wayland compositor library (git version, with patches)' url=https://gitlab.freedesktop.org/wlroots/wlroots @@ -43,9 +43,9 @@ source=("${pkgname}::git+${url}.git" 0002-Fix-configure_notify-event.patch 0003-Fix-size-hints-under-Xwayland-scaling.patch) sha512sums=('SKIP' - 'e94c5aafa13d7b78a9e0245a78c6b937f64ac78472f22afc2ca712c330212d6f69579139b103b0fc1515e901725a91ed8132d5be58be300fd45ca57c8ca80761' - 'c89c9aaa26457e64dff3530c9042afbbfd45a41dcffb01020c512eaaa359811bc16e929003ef56eb6b77f380ac0381b8382cc09da6e78ca0e6d0b2642b2a68bf' - 'd54d1faf46a390492ae2bc44238185aead9231b41dbf76567dd0dc4b85579edd5bef29a5ee22062993d06bbf24954216ebfe9a3da4ee67cd5c8b5121925e3483') + 'ca05b46c8222e6982c848944ff2afe7765a2e76bb90e29c9d5b5dde9b51a0038bce8b0d52d01c390c970319ef10614ab1454a66940bf3a5b6193fc7f189afe6b' + '484c8a6848b1409a16403bf0c3e366bf5203716824c24e16efcdcdb71ff34c42b5da6e3da338fafea70ad80fcdd3d6e9f070fb809093d8b0b08ee0b2c95a4de4' + '8e3e77f6df204b6e5aa770be61fc8a6525e295cc8acdb0084ce66463e78f11702cf066640b20d7ff9560bdcdf7fa626db2e90651dcd42670250f45ac0f636854') install=wlroots-hidpi-xprop-git.install pkgver () { cd "${pkgname}" |