diff --git a/srcpkgs/gtk+3/files/server-decoration.xml b/srcpkgs/gtk+3/files/server-decoration.xml
new file mode 100644
index 0000000000..cbd97426d6
--- /dev/null
+++ b/srcpkgs/gtk+3/files/server-decoration.xml
@@ -0,0 +1,95 @@
+
+
+ .
+ ]]>
+
+
+ This interface allows to coordinate whether the server should create
+ a server-side window decoration around a wl_surface representing a
+ shell surface (wl_shell_surface or similar). By announcing support
+ for this interface the server indicates that it supports server
+ side decorations.
+
+
+
+ When a client creates a server-side decoration object it indicates
+ that it supports the protocol. The client is supposed to tell the
+ server whether it wants server-side decorations or will provide
+ client-side decorations.
+
+ If the client does not create a server-side decoration object for
+ a surface the server interprets this as lack of support for this
+ protocol and considers it as client-side decorated. Nevertheless a
+ client-side decorated surface should use this protocol to indicate
+ to the server that it does not want a server-side deco.
+
+
+
+
+
+
+
+
+
+
+
+
+ This event is emitted directly after binding the interface. It contains
+ the default mode for the decoration. When a new server decoration object
+ is created this new object will be in the default mode until the first
+ request_mode is requested.
+
+ The server may change the default mode at any time.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This event is emitted directly after the decoration is created and
+ represents the base decoration policy by the server. E.g. a server
+ which wants all surfaces to be client-side decorated will send Client,
+ a server which wants server-side decoration will send Server.
+
+ The client can request a different mode through the decoration request.
+ The server will acknowledge this by another event with the same mode. So
+ even if a server prefers server-side decoration it's possible to force a
+ client-side decoration.
+
+ The server may emit this event at any time. In this case the client can
+ again request a different mode. It's the responsibility of the server to
+ prevent a feedback loop.
+
+
+
+
+
+
diff --git a/srcpkgs/gtk+3/template b/srcpkgs/gtk+3/template
index 63b18b53bf..dfb86bcbd4 100644
--- a/srcpkgs/gtk+3/template
+++ b/srcpkgs/gtk+3/template
@@ -1,6 +1,6 @@
# Template build file for 'gtk+3'.
pkgname=gtk+3
-version=3.22.24
+version=3.22.25
revision=1
wrksrc="gtk+-${version}"
build_style=gnu-configure
@@ -13,7 +13,7 @@ maintainer="Juan RP "
homepage="https://www.gtk.org/"
license="LGPL-2.1"
distfiles="${GNOME_SITE}/gtk+/${version%.*}/gtk+-${version}.tar.xz"
-checksum=cbb16e4cfc928ab8f5f22f7290616f95f6ebc8c97cc724a2007b07ced833592b
+checksum=e25eaed5ab0775ddc211898fbfdc873b19e4a7ab03c0dbe88dff1938b433739e
hostmakedepends="automake gettext-devel libtool pkg-config
glib-devel gtk-doc gobject-introspection gtk-update-icon-cache
@@ -43,6 +43,10 @@ pre_configure() {
sed -i 's,pkg-config,/usr/bin/pkg-config,' autogen.sh
NOCONFIGURE=1 ./autogen.sh
}
+pre_build() {
+ # see https://bugzilla.gnome.org/show_bug.cgi?id=789630
+ cp "${FILESDIR}"/server-decoration.xml "${wrksrc}"/gdk/wayland/protocol/server-decoration.xml
+}
post_install() {
rm -f ${DESTDIR}/usr/bin/gtk-update-icon-cache
rm -f ${DESTDIR}/usr/share/man/man1/gtk-update-icon-cache.1