summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorq234rty2023-08-12 17:20:19 +0800
committerq234rty2023-08-12 17:20:19 +0800
commit018d4cc49c86ccf962f8878f64d412d8d1c90a63 (patch)
treeb390aa63e608bfd769c7f776e7f01fad1a95a41a
parentc3c1b94843f730c30bbe4ee2e8e0b786af229c6e (diff)
downloadaur-018d4cc49c86ccf962f8878f64d412d8d1c90a63.tar.gz
Add a wlroots patch, refactor pkgver
-rw-r--r--.SRCINFO8
-rw-r--r--0001-xwayland-support-HiDPI-scale.patch20
-rw-r--r--0002-Fix-configure_notify-event.patch10
-rw-r--r--0003-Fix-size-hints-under-Xwayland-scaling.patch54
-rw-r--r--PKGBUILD20
5 files changed, 84 insertions, 28 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 5ecd41f6de29..46878568df88 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = hyprland-hidpi-xprop-git
pkgdesc = A dynamic tiling Wayland compositor based on wlroots that doesn't sacrifice on its looks.
- pkgver = r3185.8e04a80e
+ pkgver = 0.28.0.r34.3f7f4207
pkgrel = 1
url = https://github.com/hyprwm/Hyprland
arch = i686
@@ -55,11 +55,13 @@ pkgbase = hyprland-hidpi-xprop-git
source = git+https://github.com/canihavesomecoffee/udis86.git
source = 0001-xwayland-support-HiDPI-scale.patch
source = 0002-Fix-configure_notify-event.patch
+ source = 0003-Fix-size-hints-under-Xwayland-scaling.patch
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
- sha256sums = e3e3dab89f6cadeb330e03921c0485b2802be6a1267747237e702cbe6d02d65f
- sha256sums = 97105bee80596fd4aa21dde35d23847604a5b0e36c04b1679f7a2b9213774561
+ sha256sums = 2fd861a76fb7a6b0bba12e7d307ad655e40ec93a84c88dfc00571aac6e119e85
+ sha256sums = 1314d0ee63a4249698791d86cce5e6cdb4f005b81bbb1c6a747578d2a9223795
+ sha256sums = c08dd62a1786eeb7506f1839bfcbba791502360392c929e620244f70c8ca5b61
pkgname = hyprland-hidpi-xprop-git
diff --git a/0001-xwayland-support-HiDPI-scale.patch b/0001-xwayland-support-HiDPI-scale.patch
index 645986314065..43d76b413793 100644
--- a/0001-xwayland-support-HiDPI-scale.patch
+++ b/0001-xwayland-support-HiDPI-scale.patch
@@ -1,7 +1,7 @@
-From 5d04dc68d7a952c2b98cab7af60bba93bee2dec7 Mon Sep 17 00:00:00 2001
+From 179258208d98fe3755b414749e9776e96d3b1dad Mon Sep 17 00:00:00 2001
From: lilydjwg <lilydjwg@gmail.com>
Date: Wed, 17 Nov 2021 19:34:58 +0800
-Subject: [PATCH 1/2] xwayland: support HiDPI scale
+Subject: [PATCH 1/3] xwayland: support HiDPI scale
This supports the xorg-xwayland patch at https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/733
---
@@ -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 5f857f24..4f03b07c 100644
+index 0c30d8f6..59e9ce06 100644
--- a/xwayland/xwm.c
+++ b/xwayland/xwm.c
@@ -19,6 +19,14 @@
@@ -56,7 +56,7 @@ index 5f857f24..4f03b07c 100644
};
#define STARTUP_INFO_REMOVE_PREFIX "remove: ID="
-@@ -965,8 +974,8 @@ static void xwm_handle_create_notify(struct wlr_xwm *xwm,
+@@ -962,8 +971,8 @@ static void xwm_handle_create_notify(struct wlr_xwm *xwm,
return;
}
@@ -67,7 +67,7 @@ index 5f857f24..4f03b07c 100644
}
static void xwm_handle_destroy_notify(struct wlr_xwm *xwm,
-@@ -997,10 +1006,10 @@ static void xwm_handle_configure_request(struct wlr_xwm *xwm,
+@@ -994,10 +1003,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 5f857f24..4f03b07c 100644
.mask = mask,
};
-@@ -1015,14 +1024,14 @@ static void xwm_handle_configure_notify(struct wlr_xwm *xwm,
+@@ -1012,14 +1021,14 @@ static void xwm_handle_configure_notify(struct wlr_xwm *xwm,
}
bool geometry_changed =
@@ -103,7 +103,7 @@ index 5f857f24..4f03b07c 100644
}
if (xsurface->override_redirect != ev->override_redirect) {
-@@ -1132,7 +1141,22 @@ static void xwm_handle_unmap_notify(struct wlr_xwm *xwm,
+@@ -1136,7 +1145,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 5f857f24..4f03b07c 100644
return;
}
-@@ -1769,7 +1793,7 @@ void wlr_xwayland_surface_configure(struct wlr_xwayland_surface *xsurface,
+@@ -1770,7 +1794,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 5f857f24..4f03b07c 100644
xcb_configure_window(xwm->xcb_conn, xsurface->window_id, mask, values);
// If the window size did not change, then we cannot rely on
-@@ -2122,6 +2146,7 @@ struct wlr_xwm *xwm_create(struct wlr_xwayland *xwayland, int wm_fd) {
+@@ -2123,6 +2147,7 @@ struct wlr_xwm *xwm_create(struct wlr_xwayland *xwayland, int wm_fd) {
wl_list_init(&xwm->pending_startup_ids);
xwm->ping_timeout = 10000;
@@ -144,5 +144,5 @@ index 5f857f24..4f03b07c 100644
int rc = xcb_connection_has_error(xwm->xcb_conn);
--
-2.39.2
+2.41.0
diff --git a/0002-Fix-configure_notify-event.patch b/0002-Fix-configure_notify-event.patch
index 4ffc0bfacb09..6fdf60ff1704 100644
--- a/0002-Fix-configure_notify-event.patch
+++ b/0002-Fix-configure_notify-event.patch
@@ -1,17 +1,17 @@
-From 2fbf42a76ebf3959fb95a6c0ea66a6f04b032070 Mon Sep 17 00:00:00 2001
+From c9315b2f8c84d5f1b0b14f863af6f73bc3ac95c5 Mon Sep 17 00:00:00 2001
From: q234rty <q23456yuiop@gmail.com>
Date: Tue, 21 Feb 2023 23:56:26 +0800
-Subject: [PATCH 2/2] Fix configure_notify event
+Subject: [PATCH 2/3] Fix configure_notify event
---
xwayland/xwm.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/xwayland/xwm.c b/xwayland/xwm.c
-index 4f03b07c..f5ceedb1 100644
+index 59e9ce06..295f4d49 100644
--- a/xwayland/xwm.c
+++ b/xwayland/xwm.c
-@@ -1806,10 +1806,10 @@ void wlr_xwayland_surface_configure(struct wlr_xwayland_surface *xsurface,
+@@ -1807,10 +1807,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 4f03b07c..f5ceedb1 100644
xcb_send_event(xwm->xcb_conn, 0, xsurface->window_id,
--
-2.39.2
+2.41.0
diff --git a/0003-Fix-size-hints-under-Xwayland-scaling.patch b/0003-Fix-size-hints-under-Xwayland-scaling.patch
new file mode 100644
index 000000000000..a63a619f1a6e
--- /dev/null
+++ b/0003-Fix-size-hints-under-Xwayland-scaling.patch
@@ -0,0 +1,54 @@
+From 7220722f9173a90479d81f4b359cf91956f59f28 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
+
+---
+ xwayland/xwm.c | 23 ++++++++++++++++++++---
+ 1 file changed, 20 insertions(+), 3 deletions(-)
+
+diff --git a/xwayland/xwm.c b/xwayland/xwm.c
+index 295f4d49..674a32e1 100644
+--- a/xwayland/xwm.c
++++ b/xwayland/xwm.c
+@@ -729,17 +729,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) {
+- xsurface->size_hints->base_width = xsurface->size_hints->min_width;
+- xsurface->size_hints->base_height = xsurface->size_hints->min_height;
+- } else if (!has_min_size_hints) {
++ xsurface->size_hints->base_width = unscale(xwm, xsurface->size_hints->min_width);
++ xsurface->size_hints->base_height = unscale(xwm, xsurface->size_hints->min_height);
+ xsurface->size_hints->min_width = xsurface->size_hints->base_width;
+ xsurface->size_hints->min_height = xsurface->size_hints->base_height;
++ } else if (!has_min_size_hints) {
++ xsurface->size_hints->min_width = unscale(xwm, xsurface->size_hints->base_width);
++ xsurface->size_hints->min_height = unscale(xwm, xsurface->size_hints->base_height);
++ xsurface->size_hints->base_width = xsurface->size_hints->min_width;
++ xsurface->size_hints->base_height = xsurface->size_hints->min_height;
++ } else {
++ xsurface->size_hints->min_width = unscale(xwm, xsurface->size_hints->min_width);
++ xsurface->size_hints->min_height = unscale(xwm, xsurface->size_hints->min_height);
++ xsurface->size_hints->base_width = unscale(xwm, xsurface->size_hints->base_width);
++ xsurface->size_hints->base_height = unscale(xwm, xsurface->size_hints->base_height);
+ }
+
+ if ((flags & XCB_ICCCM_SIZE_HINT_P_MAX_SIZE) == 0) {
+ xsurface->size_hints->max_width = -1;
+ xsurface->size_hints->max_height = -1;
++ } else {
++ xsurface->size_hints->max_width = unscale(xwm, xsurface->size_hints->max_width);
++ xsurface->size_hints->max_height = unscale(xwm, xsurface->size_hints->max_height);
+ }
++
++ xsurface->size_hints->x = unscale(xwm, xsurface->size_hints->x);
++ xsurface->size_hints->y = unscale(xwm, xsurface->size_hints->y);
++ xsurface->size_hints->width = unscale(xwm, xsurface->size_hints->width);
++ xsurface->size_hints->height = unscale(xwm, xsurface->size_hints->height);
+ }
+
+ #define MWM_HINTS_FLAGS_FIELD 0
+--
+2.41.0
+
diff --git a/PKGBUILD b/PKGBUILD
index 341eed2c35a1..8fde3bc7e869 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,7 +5,7 @@
_pkgname="hyprland"
pkgname="${_pkgname}-hidpi-xprop-git"
-pkgver=r3185.8e04a80e
+pkgver=0.28.0.r34.3f7f4207
pkgrel=1
pkgdesc="A dynamic tiling Wayland compositor based on wlroots that doesn't sacrifice on its looks."
arch=("i686" "x86_64" "arm" "armv6h" "armv7h" "aarch64")
@@ -54,23 +54,21 @@ source=("${_pkgname}::git+https://github.com/hyprwm/Hyprland.git"
"git+https://github.com/hyprwm/hyprland-protocols.git"
"git+https://github.com/canihavesomecoffee/udis86.git"
"0001-xwayland-support-HiDPI-scale.patch"
- "0002-Fix-configure_notify-event.patch")
+ "0002-Fix-configure_notify-event.patch"
+ "0003-Fix-size-hints-under-Xwayland-scaling.patch")
conflicts=("${_pkgname}")
provides=(hyprland)
sha256sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
- 'e3e3dab89f6cadeb330e03921c0485b2802be6a1267747237e702cbe6d02d65f'
- '97105bee80596fd4aa21dde35d23847604a5b0e36c04b1679f7a2b9213774561')
+ '2fd861a76fb7a6b0bba12e7d307ad655e40ec93a84c88dfc00571aac6e119e85'
+ '1314d0ee63a4249698791d86cce5e6cdb4f005b81bbb1c6a747578d2a9223795'
+ 'c08dd62a1786eeb7506f1839bfcbba791502360392c929e620244f70c8ca5b61')
options=(debug)
pkgver() {
- cd "$_pkgname"
- ( set -o pipefail
- git describe --long 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' ||
- printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
- )
+ git -C "${_pkgname}" describe --long --tags | sed 's/^v//;s/\([^-]*-\)g/r\1/;s/-/./g'
}
prepare() {
@@ -87,11 +85,13 @@ prepare() {
git revert -n 18595000f3a21502fd60bf213122859cc348f9af
patch -Np1 -i "${srcdir}"/0001-xwayland-support-HiDPI-scale.patch
patch -Np1 -i "${srcdir}"/0002-Fix-configure_notify-event.patch
+ patch -Np1 -i "${srcdir}"/0003-Fix-size-hints-under-Xwayland-scaling.patch
+ cd "${srcdir}/${_pkgname}"
+ make fixwlr
}
build() {
cd "${srcdir}/${_pkgname}"
- make fixwlr
cd "./subprojects/wlroots/" && meson setup build/ --prefix="${srcdir}/tmpwlr" --buildtype=plain && ninja -C build/ && mkdir -p "${srcdir}/tmpwlr" && ninja -C build/ install && cd ../..
cd "./subprojects/udis86/" && cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=None -H./ -B./build -G Ninja && cmake --build ./build --target all && cd ../..
mkdir -p build && cd build