summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorJonas Ådahl <jadahl@gmail.com>2020-02-16 20:09:42 +0100
committerJonas Ådahl <jadahl@gmail.com>2020-04-08 23:32:47 +0200
commit5425edff8282ac965888468aff31470d13ce8cd8 (patch)
treebbfd433519f161bdeab5e60f841865cc770a5e63 /meson.build
parent213c471bb7a0180b6a84854bc6bb680aac8a667d (diff)
downloadgtk+-5425edff8282ac965888468aff31470d13ce8cd8.tar.gz
wayland: Move popups with xdg_popup.reposition
The third version of xdg-shell introduces support for explicit popup repositioning. If available, make use of this to implement popup repositioning. Note that this does *NOT* include atomic parent-child state synchronization. For that, https://gitlab.freedesktop.org/wayland/wayland-protocols/issues/13 will be needed. This currently uses my own fork of wayland-protocols which adds meson support, so that we can use it as a subproject. Eventually when wayland-protocols' meson support lands upstream, we should change it to point there. Silence some meson warnings while at it to make CI happy. This also bumps the glib requirement, since g_warning_once() is used.
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build14
1 files changed, 10 insertions, 4 deletions
diff --git a/meson.build b/meson.build
index d3b94574ab..ecf4228b40 100644
--- a/meson.build
+++ b/meson.build
@@ -11,8 +11,8 @@ project('gtk', 'c',
license: 'LGPLv2.1+')
glib_major_req = 2
-glib_minor_req = 59
-glib_micro_req = 0
+glib_minor_req = 63
+glib_micro_req = 1
if glib_minor_req.is_odd()
glib_min_required = 'GLIB_VERSION_@0@_@1@'.format(glib_major_req, glib_minor_req - 1)
@@ -33,7 +33,7 @@ atk_req = '>= 2.15.1'
cairo_req = '>= 1.14.0'
gdk_pixbuf_req = '>= 2.30.0'
introspection_req = '>= 1.39.0'
-wayland_proto_req = '>= 1.14'
+wayland_proto_req = '>= 1.20'
wayland_req = '>= 1.14.91'
graphene_req = '>= 1.9.1'
epoxy_req = '>= 1.4'
@@ -469,10 +469,16 @@ atk_pkgs = ['atk']
wayland_pkgs = []
if wayland_enabled
wlclientdep = dependency('wayland-client', version: wayland_req)
- wlprotocolsdep = dependency('wayland-protocols', version: wayland_proto_req)
+ wlprotocolsdep = dependency('wayland-protocols', version: wayland_proto_req, required: false)
wlegldep = dependency('wayland-egl')
backend_immodules += ['wayland']
+ if not wlprotocolsdep.found()
+ wlproto_dir = subproject('wayland-protocols').get_variable('wayland_protocols_srcdir')
+ else
+ wlproto_dir = wlprotocolsdep.get_pkgconfig_variable('pkgdatadir')
+ endif
+
wayland_pkgs = [
'wayland-client', wayland_req,
'wayland-protocols', wayland_proto_req,