sway: update to 1.6.
Use configure args recommended by upstream: - new warnings shouldn't break building the package - assertions are used only for supposedly unreachable code and should be kept (our build style sets b_ndebug=true)
This commit is contained in:
parent
f223cb8977
commit
386eb342cf
3 changed files with 4 additions and 147 deletions
|
@ -1,6 +0,0 @@
|
|||
Setting the SUID bit after install has been retired for all Wayland
|
||||
compositors. It is recommended that users use a session management daemon
|
||||
such as elogind or seatd and do not rely on compositors dropping privileges.
|
||||
|
||||
All users who require this functionality will need to set the SUID bit manually
|
||||
after each update going forward.
|
|
@ -1,133 +0,0 @@
|
|||
Upstream: yes
|
||||
Source: https://github.com/swaywm/sway/pull/6046
|
||||
Reason: Popup menu flickers on Firefox
|
||||
(https://bugzilla.mozilla.org/show_bug.cgi?id=1696662)
|
||||
|
||||
From cf03185561e919f1c337f087194fec150425eef5 Mon Sep 17 00:00:00 2001
|
||||
From: Kenny Levinsen <kl@kl.wtf>
|
||||
Date: Fri, 19 Feb 2021 18:39:54 +0100
|
||||
Subject: [PATCH 1/3] view: Recursively check mapped of view_child tree
|
||||
|
||||
A subsurface may be set to mapped without its parent.
|
||||
---
|
||||
sway/tree/view.c | 14 ++++++++++++--
|
||||
1 file changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/sway/tree/view.c b/sway/tree/view.c
|
||||
index ad79b2294..c8a4ea6b6 100644
|
||||
--- a/sway/tree/view.c
|
||||
+++ b/sway/tree/view.c
|
||||
@@ -982,8 +982,18 @@ static void view_child_subsurface_create(struct sway_view_child *child,
|
||||
view_child_damage(&subsurface->child, true);
|
||||
}
|
||||
|
||||
+static bool view_child_is_mapped(struct sway_view_child *child) {
|
||||
+ while (child) {
|
||||
+ if (!child->mapped) {
|
||||
+ return false;
|
||||
+ }
|
||||
+ child = child->parent;
|
||||
+ }
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
static void view_child_damage(struct sway_view_child *child, bool whole) {
|
||||
- if (!child || !child->mapped || !child->view || !child->view->container) {
|
||||
+ if (!child || !view_child_is_mapped(child) || !child->view || !child->view->container) {
|
||||
return;
|
||||
}
|
||||
int sx, sy;
|
||||
@@ -1082,7 +1092,7 @@ void view_child_init(struct sway_view_child *child,
|
||||
}
|
||||
|
||||
void view_child_destroy(struct sway_view_child *child) {
|
||||
- if (child->mapped && child->view->container != NULL) {
|
||||
+ if (view_child_is_mapped(child) && child->view->container != NULL) {
|
||||
view_child_damage(child, true);
|
||||
}
|
||||
|
||||
|
||||
From e2ec65d0a32797edd0846758bc24cf685e2d19d5 Mon Sep 17 00:00:00 2001
|
||||
From: Kenny Levinsen <kl@kl.wtf>
|
||||
Date: Fri, 19 Feb 2021 18:41:04 +0100
|
||||
Subject: [PATCH 2/3] view: Mark subchildren as unmapped in view_child_destroy
|
||||
|
||||
The subchildren lose their parent association at this point, so they
|
||||
will not be able to see that the parent is unmapped.
|
||||
|
||||
Instead, just set the subchildren to be unmapped directly.
|
||||
---
|
||||
sway/tree/view.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/sway/tree/view.c b/sway/tree/view.c
|
||||
index c8a4ea6b6..978271c24 100644
|
||||
--- a/sway/tree/view.c
|
||||
+++ b/sway/tree/view.c
|
||||
@@ -1105,6 +1105,9 @@ void view_child_destroy(struct sway_view_child *child) {
|
||||
wl_list_for_each_safe(subchild, tmpchild, &child->children, link) {
|
||||
wl_list_remove(&subchild->link);
|
||||
subchild->parent = NULL;
|
||||
+ // The subchild lost its parent link, so it cannot see that the parent
|
||||
+ // is unmapped. Unmap it directly.
|
||||
+ subchild->mapped = false;
|
||||
}
|
||||
|
||||
wl_list_remove(&child->surface_commit.link);
|
||||
|
||||
From c06a926e0d89e952e5a3892b63f07d5b802b34ef Mon Sep 17 00:00:00 2001
|
||||
From: Kenny Levinsen <kl@kl.wtf>
|
||||
Date: Fri, 19 Feb 2021 18:33:20 +0100
|
||||
Subject: [PATCH 3/3] view: Set parent for view_child subsurfaces on init
|
||||
|
||||
view_child_init was calling view_init_subsurfaces, which did not set the
|
||||
parent attribute for the subchildren. This lead to the subchildren
|
||||
acting as standalone children. If the parent was an xdg_popup, this
|
||||
would make the subchild unaware of the popup position.
|
||||
|
||||
Introduce view_child_init_subsurfaces for view_child_init to use
|
||||
instead.
|
||||
|
||||
Closes: https://github.com/swaywm/sway/issues/6038
|
||||
---
|
||||
sway/tree/view.c | 13 ++++++++++++-
|
||||
1 file changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sway/tree/view.c b/sway/tree/view.c
|
||||
index 978271c24..8a2a8178d 100644
|
||||
--- a/sway/tree/view.c
|
||||
+++ b/sway/tree/view.c
|
||||
@@ -465,6 +465,9 @@ static void view_subsurface_create(struct sway_view *view,
|
||||
static void view_init_subsurfaces(struct sway_view *view,
|
||||
struct wlr_surface *surface);
|
||||
|
||||
+static void view_child_init_subsurfaces(struct sway_view_child *view_child,
|
||||
+ struct wlr_surface *surface);
|
||||
+
|
||||
static void view_handle_surface_new_subsurface(struct wl_listener *listener,
|
||||
void *data) {
|
||||
struct sway_view *view =
|
||||
@@ -1033,6 +1036,14 @@ static void view_init_subsurfaces(struct sway_view *view,
|
||||
}
|
||||
}
|
||||
|
||||
+static void view_child_init_subsurfaces(struct sway_view_child *view_child,
|
||||
+ struct wlr_surface *surface) {
|
||||
+ struct wlr_subsurface *subsurface;
|
||||
+ wl_list_for_each(subsurface, &surface->subsurfaces, parent_link) {
|
||||
+ view_child_subsurface_create(view_child, subsurface);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static void view_child_handle_surface_map(struct wl_listener *listener,
|
||||
void *data) {
|
||||
struct sway_view_child *child =
|
||||
@@ -1088,7 +1099,7 @@ void view_child_init(struct sway_view_child *child,
|
||||
wlr_surface_send_enter(child->surface, workspace->output->wlr_output);
|
||||
}
|
||||
|
||||
- view_init_subsurfaces(child->view, surface);
|
||||
+ view_child_init_subsurfaces(child, surface);
|
||||
}
|
||||
|
||||
void view_child_destroy(struct sway_view_child *child) {
|
|
@ -1,8 +1,9 @@
|
|||
# Template file for 'sway'
|
||||
pkgname=sway
|
||||
version=1.5.1
|
||||
revision=2
|
||||
version=1.6
|
||||
revision=1
|
||||
build_style=meson
|
||||
configure_args="-Dwerror=false -Db_ndebug=false"
|
||||
conf_files="/etc/sway/config"
|
||||
hostmakedepends="pkg-config wayland-devel scdoc git"
|
||||
makedepends="wlroots-devel pcre-devel json-c-devel pango-devel cairo-devel
|
||||
|
@ -13,12 +14,7 @@ maintainer="Olaf Mersmann <olafm@p-value.net>"
|
|||
license="MIT"
|
||||
homepage="https://swaywm.org"
|
||||
distfiles="https://github.com/swaywm/${pkgname}/archive/${version}.tar.gz"
|
||||
checksum=095f983c9a5f80d761bc2fb19df8166839b9290124ccd47f3e74119a1335490f
|
||||
patch_args="-Np1"
|
||||
|
||||
post_patch() {
|
||||
vsed -e 's/werror=true/werror=false/g' -i meson.build
|
||||
}
|
||||
checksum=9ecfd2f38239f7e90922a13cd348fc95fc059e8fa0e4b75b8ffcc7b61685a5fb
|
||||
|
||||
post_install() {
|
||||
vlicense LICENSE
|
||||
|
|
Loading…
Reference in a new issue