Date: Sun, 8 Nov 2020 16:48:02 +0000 (UTC) From: Jan Beich <jbeich@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r554475 - in head: x11-toolkits/wlroots x11-wm/cage x11-wm/hikari x11-wm/phoc x11-wm/sway x11-wm/wayfire x11-wm/wayfire-plugins-extra x11-wm/wayfire/files Message-ID: <202011081648.0A8Gm2mT073443@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jbeich Date: Sun Nov 8 16:48:02 2020 New Revision: 554475 URL: https://svnweb.freebsd.org/changeset/ports/554475 Log: x11-toolkits/wlroots: update to 0.12.0 Changes: https://github.com/swaywm/wlroots/releases/tag/0.12.0 Reported by: GitHub (watch releases) Added: head/x11-wm/wayfire/files/patch-wlroots-0.12 (contents, props changed) Modified: head/x11-toolkits/wlroots/Makefile (contents, props changed) head/x11-toolkits/wlroots/distinfo (contents, props changed) head/x11-toolkits/wlroots/pkg-plist (contents, props changed) head/x11-wm/cage/Makefile (contents, props changed) head/x11-wm/hikari/Makefile (contents, props changed) head/x11-wm/phoc/Makefile (contents, props changed) head/x11-wm/sway/Makefile (contents, props changed) head/x11-wm/sway/distinfo (contents, props changed) head/x11-wm/wayfire-plugins-extra/Makefile (contents, props changed) head/x11-wm/wayfire/Makefile (contents, props changed) Modified: head/x11-toolkits/wlroots/Makefile ============================================================================== --- head/x11-toolkits/wlroots/Makefile Sun Nov 8 16:42:09 2020 (r554474) +++ head/x11-toolkits/wlroots/Makefile Sun Nov 8 16:48:02 2020 (r554475) @@ -1,12 +1,11 @@ # $FreeBSD$ PORTNAME= wlroots -DISTVERSION= 0.11.0 -PORTREVISION= 2 +DISTVERSION= 0.12.0 CATEGORIES= x11-toolkits PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ -PATCHFILES+= 0fe36eb89754.patch:-p1 # https://github.com/swaywm/wlroots/pull/2064 +PATCHFILES+= 8bdf0df41719.patch:-p1 # https://github.com/swaywm/wlroots/pull/2064 PATCHFILES+= 90cb6d26877b.patch:-p1 # https://github.com/swaywm/wlroots/pull/2064 MAINTAINER= jbeich@FreeBSD.org @@ -40,26 +39,17 @@ OPTIONS_SUB= yes CONSOLEKIT_DESC= DRM sessions without root using ConsoleKit2 CONSOLEKIT_PATCH_SITES= https://github.com/myfreeweb/${GH_PROJECT}/commit/:ck2 -CONSOLEKIT_PATCHFILES= b59460944208.patch:-p1:ck2 # https://github.com/swaywm/wlroots/pull/1467 +CONSOLEKIT_PATCHFILES= fcee578b13eb.patch:-p1:ck2 # https://github.com/swaywm/wlroots/pull/1467 CONSOLEKIT_LIB_DEPENDS= libdbus-1.so:devel/dbus \ libconsolekit.so:sysutils/consolekit2 CONSOLEKIT_MESON_ENABLED= consolekit2 -CONSOLEKIT_PREVENTS= LIBSEAT -CONSOLEKIT_PREVENTS_MSG=CONSOLEKIT and LIBSEAT patches cannot be applied together .if make(makesum) .MAKEFLAGS: WITH+=CONSOLEKIT .endif LIBSEAT_DESC= DRM sessions with/without root via libseat (experimental) -LIBSEAT_PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/:libseat -LIBSEAT_PATCHFILES= bad1e9afa8ea.patch:-p1:libseat # https://github.com/swaywm/wlroots/pull/2364 -LIBSEAT_PATCHFILES+= 330c50b48dfe.patch:-p1:libseat # https://github.com/swaywm/wlroots/pull/2379 -LIBSEAT_PATCHFILES+= 4a85ae24c7df.patch:-p1:libseat # https://github.com/swaywm/wlroots/pull/2383 LIBSEAT_LIB_DEPENDS= libseat.so:sysutils/seatd LIBSEAT_MESON_ENABLED= libseat -.if make(makesum) -.MAKEFLAGS: WITH+=LIBSEAT -.endif X11_LIB_DEPENDS= libxcb-errors.so:x11/xcb-util-errors \ libxcb-icccm.so:x11/xcb-util-wm Modified: head/x11-toolkits/wlroots/distinfo ============================================================================== --- head/x11-toolkits/wlroots/distinfo Sun Nov 8 16:42:09 2020 (r554474) +++ head/x11-toolkits/wlroots/distinfo Sun Nov 8 16:48:02 2020 (r554475) @@ -1,15 +1,9 @@ -TIMESTAMP = 1594852043 -SHA256 (swaywm-wlroots-0.11.0_GH0.tar.gz) = a7645e77229aab4942748c621be8bdb8b073d94f35f3e032b867246862bf2d01 -SIZE (swaywm-wlroots-0.11.0_GH0.tar.gz) = 481126 -SHA256 (0fe36eb89754.patch) = a416f736df9afb7f3035488bdfd94983b6208d1fa7d36ca13fea315aceae153d -SIZE (0fe36eb89754.patch) = 5257 +TIMESTAMP = 1604844104 +SHA256 (swaywm-wlroots-0.12.0_GH0.tar.gz) = c9e9f4f6d2f526d0b2886daf3ec37e64831773059aa669fb98a88522a1626bdb +SIZE (swaywm-wlroots-0.12.0_GH0.tar.gz) = 476936 +SHA256 (8bdf0df41719.patch) = 0be1441fd6c3bad0918a09714e1605c1a76362d57ee42aa09f55dfbcba1d8218 +SIZE (8bdf0df41719.patch) = 5792 SHA256 (90cb6d26877b.patch) = 4c3a87dca481a637457d7409d38ce2bcd8d52ba4a0b02cf16e09429a6d3d360d SIZE (90cb6d26877b.patch) = 3965 -SHA256 (b59460944208.patch) = 8b15ed54dcec76adf231db454ece78427eeabd5466ffd180b57ec785eeb4c507 -SIZE (b59460944208.patch) = 27381 -SHA256 (bad1e9afa8ea.patch) = 6022aba43fb2ed867e6eedca7319e6304a6312d28441c75a930cec5334961f06 -SIZE (bad1e9afa8ea.patch) = 14832 -SHA256 (330c50b48dfe.patch) = cf0f93636aa163c120d256849f28d4da6446a20f64616c451acbf3d705484013 -SIZE (330c50b48dfe.patch) = 1473 -SHA256 (4a85ae24c7df.patch) = 00f04b80ae39205aaffb3abfe4ffa9ef5d76d206280312c9fcce6b15e3f85c25 -SIZE (4a85ae24c7df.patch) = 2306 +SHA256 (fcee578b13eb.patch) = d6d9874e4b060979b608e36dd784f4355a4856c45d98e0ab2bf75936a8f1d460 +SIZE (fcee578b13eb.patch) = 27676 Modified: head/x11-toolkits/wlroots/pkg-plist ============================================================================== --- head/x11-toolkits/wlroots/pkg-plist Sun Nov 8 16:42:09 2020 (r554474) +++ head/x11-toolkits/wlroots/pkg-plist Sun Nov 8 16:48:02 2020 (r554475) @@ -78,7 +78,6 @@ include/wlr/types/wlr_xcursor_manager.h include/wlr/types/wlr_xdg_decoration_v1.h include/wlr/types/wlr_xdg_output_v1.h include/wlr/types/wlr_xdg_shell.h -include/wlr/types/wlr_xdg_shell_v6.h include/wlr/util/edges.h include/wlr/util/log.h include/wlr/util/region.h @@ -86,5 +85,5 @@ include/wlr/version.h include/wlr/xcursor.h %%X11%%include/wlr/xwayland.h lib/libwlroots.so -lib/libwlroots.so.6 +lib/libwlroots.so.7 libdata/pkgconfig/wlroots.pc Modified: head/x11-wm/cage/Makefile ============================================================================== --- head/x11-wm/cage/Makefile Sun Nov 8 16:42:09 2020 (r554474) +++ head/x11-wm/cage/Makefile Sun Nov 8 16:48:02 2020 (r554475) @@ -3,7 +3,7 @@ PORTNAME= cage DISTVERSIONPREFIX= v DISTVERSION= 0.1.2.1 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= x11-wm PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ Modified: head/x11-wm/hikari/Makefile ============================================================================== --- head/x11-wm/hikari/Makefile Sun Nov 8 16:42:09 2020 (r554474) +++ head/x11-wm/hikari/Makefile Sun Nov 8 16:48:02 2020 (r554475) @@ -2,6 +2,7 @@ PORTNAME= hikari DISTVERSION= 2.2.2 +PORTREVISION= 1 CATEGORIES= x11-wm MASTER_SITES= https://hikari.acmelabs.space/releases/ @@ -13,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \ wayland-protocols>=1.14:graphics/wayland-protocols \ - wlroots>=0.9.0<0.12.0:x11-toolkits/wlroots + wlroots>=0.9.0<0.13.0:x11-toolkits/wlroots LIB_DEPENDS= libepoll-shim.so:devel/libepoll-shim \ libinput.so:x11/libinput \ libucl.so:textproc/libucl \ Modified: head/x11-wm/phoc/Makefile ============================================================================== --- head/x11-wm/phoc/Makefile Sun Nov 8 16:42:09 2020 (r554474) +++ head/x11-wm/phoc/Makefile Sun Nov 8 16:48:02 2020 (r554475) @@ -3,6 +3,7 @@ PORTNAME= phoc DISTVERSIONPREFIX= v DISTVERSION= 0.4.4 +PORTREVISION= 1 CATEGORIES= x11-wm MAINTAINER= jbeich@FreeBSD.org Modified: head/x11-wm/sway/Makefile ============================================================================== --- head/x11-wm/sway/Makefile Sun Nov 8 16:42:09 2020 (r554474) +++ head/x11-wm/sway/Makefile Sun Nov 8 16:48:02 2020 (r554475) @@ -2,12 +2,13 @@ PORTNAME= sway DISTVERSION= 1.5 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= x11-wm PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ PATCHFILES+= cd9d1038a822.patch:-p1 # https://github.com/swaywm/sway/pull/5090 PATCHFILES+= f98ca3ab7ca1.patch:-p1 # https://github.com/swaywm/sway/pull/5090 +PATCHFILES+= 5ae4f65045c0.patch:-p1 # wlroots 0.12.0 MAINTAINER= jbeich@FreeBSD.org COMMENT= i3-compatible Wayland compositor @@ -17,7 +18,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \ wayland-protocols>=1.14:graphics/wayland-protocols \ - wlroots>=0.11.0<0.12.0:x11-toolkits/wlroots + wlroots>=0.12.0<0.13.0:x11-toolkits/wlroots LIB_DEPENDS= libjson-c.so:devel/json-c \ libevdev.so:devel/libevdev \ libpcre.so:devel/pcre \ Modified: head/x11-wm/sway/distinfo ============================================================================== --- head/x11-wm/sway/distinfo Sun Nov 8 16:42:09 2020 (r554474) +++ head/x11-wm/sway/distinfo Sun Nov 8 16:48:02 2020 (r554475) @@ -5,3 +5,5 @@ SHA256 (cd9d1038a822.patch) = 4183dffdf4e3dbe70302d7e6 SIZE (cd9d1038a822.patch) = 8946 SHA256 (f98ca3ab7ca1.patch) = 319a9658ea12403e6c73ed0c2c6f0deffd23ebe25b6ba81d7573f9984be95760 SIZE (f98ca3ab7ca1.patch) = 2669 +SHA256 (5ae4f65045c0.patch) = b29852188bd900f444882a8500452ccb018fd2025cb3e9c618dbff1bc9abe525 +SIZE (5ae4f65045c0.patch) = 724 Modified: head/x11-wm/wayfire-plugins-extra/Makefile ============================================================================== --- head/x11-wm/wayfire-plugins-extra/Makefile Sun Nov 8 16:42:09 2020 (r554474) +++ head/x11-wm/wayfire-plugins-extra/Makefile Sun Nov 8 16:48:02 2020 (r554475) @@ -3,6 +3,7 @@ PORTNAME= wayfire-plugins-extra DISTVERSIONPREFIX= v DISTVERSION= 0.5.0 +PORTREVISION= 1 CATEGORIES= x11-wm MAINTAINER= jbeich@FreeBSD.org Modified: head/x11-wm/wayfire/Makefile ============================================================================== --- head/x11-wm/wayfire/Makefile Sun Nov 8 16:42:09 2020 (r554474) +++ head/x11-wm/wayfire/Makefile Sun Nov 8 16:48:02 2020 (r554475) @@ -2,7 +2,7 @@ PORTNAME= wayfire DISTVERSION= 0.5.0 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= x11-wm MAINTAINER= jbeich@FreeBSD.org @@ -16,7 +16,7 @@ BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \ ${LOCALBASE}/include/xf86drmMode.h:graphics/libdrm \ wayland-protocols>=1.12:graphics/wayland-protocols \ glm>=0.9.8:math/glm \ - wlroots>=0.11.0<0.12.0:x11-toolkits/wlroots + wlroots>=0.11.0<0.13.0:x11-toolkits/wlroots LIB_DEPENDS= libinotify.so:devel/libinotify \ libwf-config.so:devel/wf-config \ libpng.so:graphics/png \ Added: head/x11-wm/wayfire/files/patch-wlroots-0.12 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/x11-wm/wayfire/files/patch-wlroots-0.12 Sun Nov 8 16:48:02 2020 (r554475) @@ -0,0 +1,592 @@ +https://github.com/WayfireWM/wayfire/commit/a8857ba0d3b7 + +meson.build:31:1: ERROR: Invalid version of dependency, need 'wlroots' ['<0.12.0'] found '0.12.0'. + +In file included from ../src/view/view.cpp:11: +../src/view/xdg-shell.hpp:8:10: fatal error: 'wlr/types/wlr_xdg_shell_v6.h' file not found +#include <wlr/types/wlr_xdg_shell_v6.h> + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +--- meson.build.orig 2020-08-04 18:56:17 UTC ++++ meson.build +@@ -28,7 +28,7 @@ libinput = dependency('libinput', version: '>=1. + pixman = dependency('pixman-1') + threads = dependency('threads') + xkbcommon = dependency('xkbcommon') +-wlroots = dependency('wlroots', version: ['>=0.11.0', '<0.12.0'], required: get_option('use_system_wlroots')) ++wlroots = dependency('wlroots', version: ['>=0.11.0', '<0.13.0'], required: get_option('use_system_wlroots')) + wfconfig = dependency('wf-config', version: ['>=0.5.0', '<0.6.0'], required: get_option('use_system_wfconfig')) + + use_system_wlroots = not get_option('use_system_wlroots').disabled() and wlroots.found() +--- src/output/output.cpp.orig 2020-08-04 18:56:17 UTC ++++ src/output/output.cpp +@@ -188,33 +188,26 @@ bool wf::output_t::ensure_visible(wayfire_view v) + return true; + } + +-template<class popup_type> +-void try_close_popup(wayfire_view to_check, wayfire_view active_view) +-{ +- auto popup = dynamic_cast<wayfire_xdg_popup<popup_type>*>(to_check.get()); +- if (!popup || (popup->popup_parent == active_view.get())) +- { +- return; +- } +- +- /* Ignore popups which have a popup as their parent. In those cases, we'll +- * close the topmost popup and this will recursively destroy the others. +- * +- * Otherwise we get a race condition with wlroots. */ +- if (dynamic_cast<wayfire_xdg_popup<popup_type>*>(popup->popup_parent)) +- { +- return; +- } +- +- popup->close(); +-} +- + void wf::output_impl_t::close_popups() + { + for (auto& v : workspace->get_views_in_layer(wf::ALL_LAYERS)) + { +- try_close_popup<wlr_xdg_popup>(v, active_view); +- try_close_popup<wlr_xdg_popup_v6>(v, active_view); ++ auto popup = dynamic_cast<wayfire_xdg_popup*>(v.get()); ++ if (!popup || (popup->popup_parent == active_view.get())) ++ { ++ continue; ++ } ++ ++ /* Ignore popups which have a popup as their parent. In those cases, we'll ++ * close the topmost popup and this will recursively destroy the others. ++ * ++ * Otherwise we get a race condition with wlroots. */ ++ if (dynamic_cast<wayfire_xdg_popup*>(popup->popup_parent)) ++ { ++ continue; ++ } ++ ++ popup->close(); + } + } + +--- src/view/view-impl.cpp.orig 2020-08-04 18:56:17 UTC ++++ src/view/view-impl.cpp +@@ -571,7 +571,6 @@ extern "C" + { + #include <wlr/config.h> + +-#include <wlr/types/wlr_xdg_shell_v6.h> + #define namespace namespace_t + #include <wlr/types/wlr_layer_shell_v1.h> + #undef namespace +@@ -613,12 +612,6 @@ wayfire_view wf::wl_surface_to_wayfire_view(wl_resourc + auto surface = (wlr_surface*)wl_resource_get_user_data(resource); + + void *handle = NULL; +- +- if (wlr_surface_is_xdg_surface_v6(surface)) +- { +- handle = wlr_xdg_surface_v6_from_wlr_surface(surface)->data; +- } +- + if (wlr_surface_is_xdg_surface(surface)) + { + handle = wlr_xdg_surface_from_wlr_surface(surface)->data; +--- src/view/xdg-shell.cpp.orig 2020-08-04 18:56:17 UTC ++++ src/view/xdg-shell.cpp +@@ -8,8 +8,7 @@ + #include "wayfire/output-layout.hpp" + #include <wayfire/workspace-manager.hpp> + +-template<class XdgPopupVersion> +-wayfire_xdg_popup<XdgPopupVersion>::wayfire_xdg_popup(XdgPopupVersion *popup) : ++wayfire_xdg_popup::wayfire_xdg_popup(wlr_xdg_popup *popup) : + wf::wlr_view_t() + { + this->popup_parent = +@@ -20,8 +19,7 @@ wayfire_xdg_popup<XdgPopupVersion>::wayfire_xdg_popup( + this->set_output(popup_parent->get_output()); + } + +-template<class XdgPopupVersion> +-void wayfire_xdg_popup<XdgPopupVersion>::initialize() ++void wayfire_xdg_popup::initialize() + { + LOGI("New xdg popup"); + on_map.set_callback([&] (void*) { map(this->popup->base->surface); }); +@@ -33,7 +31,7 @@ void wayfire_xdg_popup<XdgPopupVersion>::initialize() + on_destroy.set_callback([&] (void*) { destroy(); }); + on_new_popup.set_callback([&] (void *data) + { +- create_xdg_popup((XdgPopupVersion*)data); ++ create_xdg_popup((wlr_xdg_popup*)data); + }); + + on_map.connect(&popup->base->events.map); +@@ -63,8 +61,7 @@ void wayfire_xdg_popup<XdgPopupVersion>::initialize() + &this->parent_title_changed); + } + +-template<class XdgPopupVersion> +-void wayfire_xdg_popup<XdgPopupVersion>::map(wlr_surface *surface) ++void wayfire_xdg_popup::map(wlr_surface *surface) + { + uint32_t parent_layer = + get_output()->workspace->get_view_layer(popup_parent->self()); +@@ -82,15 +79,13 @@ void wayfire_xdg_popup<XdgPopupVersion>::map(wlr_surfa + unconstrain(); + } + +-template<class XdgPopupVersion> +-void wayfire_xdg_popup<XdgPopupVersion>::commit() ++void wayfire_xdg_popup::commit() + { + wlr_view_t::commit(); + update_position(); + } + +-template<class XdgPopupVersion> +-void wayfire_xdg_popup<XdgPopupVersion>::update_position() ++void wayfire_xdg_popup::update_position() + { + if (!popup_parent->is_mapped() || !is_mapped()) + { +@@ -110,14 +105,12 @@ void wayfire_xdg_popup<XdgPopupVersion>::update_positi + this->move(popup_offset.x, popup_offset.y); + } + +-template<class XdgPopupVersion> +-void wayfire_xdg_popup<XdgPopupVersion>::unconstrain() ++void wayfire_xdg_popup::unconstrain() + { + wf::view_interface_t *toplevel_parent = this; +- using popup_type = wayfire_xdg_popup<XdgPopupVersion>*; + while (true) + { +- popup_type as_popup = dynamic_cast<popup_type>(toplevel_parent); ++ auto as_popup = dynamic_cast<wayfire_xdg_popup*>(toplevel_parent); + if (as_popup) + { + toplevel_parent = as_popup->popup_parent; +@@ -137,24 +130,11 @@ void wayfire_xdg_popup<XdgPopupVersion>::unconstrain() + box.x -= wm.x; + box.y -= wm.y; + +- _do_unconstrain(box); +-} +- +-template<> +-void wayfire_xdg_popup<wlr_xdg_popup>::_do_unconstrain(wlr_box box) +-{ + wlr_xdg_popup_unconstrain_from_box(popup, &box); + } + +-template<> +-void wayfire_xdg_popup<wlr_xdg_popup_v6>::_do_unconstrain(wlr_box box) ++void wayfire_xdg_popup::destroy() + { +- wlr_xdg_popup_v6_unconstrain_from_box(popup, &box); +-} +- +-template<class XdgPopupVersion> +-void wayfire_xdg_popup<XdgPopupVersion>::destroy() +-{ + on_map.disconnect(); + on_unmap.disconnect(); + on_destroy.disconnect(); +@@ -163,8 +143,7 @@ void wayfire_xdg_popup<XdgPopupVersion>::destroy() + wlr_view_t::destroy(); + } + +-template<class XdgPopupVersion> +-wf::point_t wayfire_xdg_popup<XdgPopupVersion>::get_window_offset() ++wf::point_t wayfire_xdg_popup::get_window_offset() + { + return { + popup->base->geometry.x, +@@ -172,32 +151,18 @@ wf::point_t wayfire_xdg_popup<XdgPopupVersion>::get_wi + }; + } + +-template<> +-void wayfire_xdg_popup<wlr_xdg_popup_v6>::close() ++void wayfire_xdg_popup::close() + { + pending_close.run_once([=] () + { + if (is_mapped()) + { +- wlr_xdg_surface_v6_send_close(popup->base); +- } +- }); +-} +- +-template<> +-void wayfire_xdg_popup<wlr_xdg_popup>::close() +-{ +- pending_close.run_once([=] () +- { +- if (is_mapped()) +- { + wlr_xdg_popup_destroy(popup->base); + } + }); + } + +-template<class XdgPopupVersion> +-void create_xdg_popup_templ(XdgPopupVersion *popup) ++void create_xdg_popup(wlr_xdg_popup *popup) + { + auto parent = wf::wf_surface_from_void(popup->parent->data); + if (!parent) +@@ -207,30 +172,14 @@ void create_xdg_popup_templ(XdgPopupVersion *popup) + return; + } + +- wf::get_core().add_view( +- std::make_unique<wayfire_xdg_popup<XdgPopupVersion>>(popup)); ++ wf::get_core().add_view(std::make_unique<wayfire_xdg_popup>(popup)); + } + +-template<class XdgPopupVersion> +-void create_xdg_popup(XdgPopupVersion *popup) +-{ +- create_xdg_popup_templ(popup); +-} +- +-// specialized in header +-template<> +-void create_xdg_popup<wlr_xdg_popup>(wlr_xdg_popup *popup) +-{ +- create_xdg_popup_templ(popup); +-} +- +-template<class XdgToplevelVersion> +-wayfire_xdg_view<XdgToplevelVersion>::wayfire_xdg_view(XdgToplevelVersion *top) : ++wayfire_xdg_view::wayfire_xdg_view(wlr_xdg_toplevel *top) : + wf::wlr_view_t(), xdg_toplevel(top) + {} + +-template<class XdgToplevelVersion> +-void wayfire_xdg_view<XdgToplevelVersion>::initialize() ++void wayfire_xdg_view::initialize() + { + wlr_view_t::initialize(); + LOGI("new xdg_shell_stable surface: ", xdg_toplevel->title, +@@ -306,15 +255,10 @@ void wayfire_xdg_view<XdgToplevelVersion>::initialize( + } + } + +-template<class XdgToplevelVersion> +-wayfire_xdg_view<XdgToplevelVersion>::~wayfire_xdg_view() ++wayfire_xdg_view::~wayfire_xdg_view() + {} + +-template<class XdgToplevelVersion> +-wf::geometry_t get_xdg_geometry(XdgToplevelVersion *toplevel); +- +-template<> +-wf::geometry_t get_xdg_geometry<wlr_xdg_toplevel>(wlr_xdg_toplevel *toplevel) ++wf::geometry_t get_xdg_geometry(wlr_xdg_toplevel *toplevel) + { + wlr_box xdg_geometry; + wlr_xdg_surface_get_geometry(toplevel->base, &xdg_geometry); +@@ -322,24 +266,13 @@ wf::geometry_t get_xdg_geometry<wlr_xdg_toplevel>(wlr_ + return xdg_geometry; + } + +-template<> +-wf::geometry_t get_xdg_geometry<wlr_xdg_toplevel_v6>(wlr_xdg_toplevel_v6 *toplevel) ++void wayfire_xdg_view::map(wlr_surface *surface) + { +- wlr_box xdg_geometry; +- wlr_xdg_surface_v6_get_geometry(toplevel->base, &xdg_geometry); +- +- return xdg_geometry; +-} +- +-template<class XdgToplevelVersion> +-void wayfire_xdg_view<XdgToplevelVersion>::map(wlr_surface *surface) +-{ + wlr_view_t::map(surface); + create_toplevel(); + } + +-template<class XdgToplevelVersion> +-void wayfire_xdg_view<XdgToplevelVersion>::commit() ++void wayfire_xdg_view::commit() + { + wlr_view_t::commit(); + +@@ -359,14 +292,12 @@ void wayfire_xdg_view<XdgToplevelVersion>::commit() + } + } + +-template<class XdgToplevelVersion> +-wf::point_t wayfire_xdg_view<XdgToplevelVersion>::get_window_offset() ++wf::point_t wayfire_xdg_view::get_window_offset() + { + return xdg_surface_offset; + } + +-template<class XdgToplevelVersion> +-wf::geometry_t wayfire_xdg_view<XdgToplevelVersion>::get_wm_geometry() ++wf::geometry_t wayfire_xdg_view::get_wm_geometry() + { + if (!is_mapped()) + { +@@ -391,8 +322,7 @@ wf::geometry_t wayfire_xdg_view<XdgToplevelVersion>::g + return wm; + } + +-template<class XdgToplevelVersion> +-void wayfire_xdg_view<XdgToplevelVersion>::set_activated(bool act) ++void wayfire_xdg_view::set_activated(bool act) + { + /* we don't send activated or deactivated for shell views, + * they should always be active */ +@@ -401,55 +331,26 @@ void wayfire_xdg_view<XdgToplevelVersion>::set_activat + act = true; + } + +- _set_activated(act); ++ wlr_xdg_toplevel_set_activated(xdg_toplevel->base, act); + wf::wlr_view_t::set_activated(act); + } + +-template<> +-void wayfire_xdg_view<wlr_xdg_toplevel>::_set_activated(bool act) ++void wayfire_xdg_view::set_tiled(uint32_t edges) + { +- wlr_xdg_toplevel_set_activated(xdg_toplevel->base, act); +-} +- +-template<> +-void wayfire_xdg_view<wlr_xdg_toplevel_v6>::_set_activated(bool act) +-{ +- wlr_xdg_toplevel_v6_set_activated(xdg_toplevel->base, act); +-} +- +-template<> +-void wayfire_xdg_view<wlr_xdg_toplevel>::set_tiled(uint32_t edges) +-{ + wlr_xdg_toplevel_set_tiled(xdg_toplevel->base, edges); + wlr_xdg_toplevel_set_maximized(xdg_toplevel->base, + (edges == wf::TILED_EDGES_ALL)); + wlr_view_t::set_tiled(edges); + } + +-template<> +-void wayfire_xdg_view<wlr_xdg_toplevel_v6>::set_tiled(uint32_t edges) ++void wayfire_xdg_view::set_fullscreen(bool full) + { +- wlr_xdg_toplevel_v6_set_maximized(xdg_toplevel->base, !!edges); +- wlr_view_t::set_tiled(edges); +-} +- +-template<> +-void wayfire_xdg_view<wlr_xdg_toplevel>::set_fullscreen(bool full) +-{ + wf::wlr_view_t::set_fullscreen(full); + wlr_xdg_toplevel_set_fullscreen(xdg_toplevel->base, full); + } + +-template<> +-void wayfire_xdg_view<wlr_xdg_toplevel_v6>::set_fullscreen(bool full) ++void wayfire_xdg_view::resize(int w, int h) + { +- wf::wlr_view_t::set_fullscreen(full); +- wlr_xdg_toplevel_v6_set_fullscreen(xdg_toplevel->base, full); +-} +- +-template<class XdgToplevelVersion> +-void wayfire_xdg_view<XdgToplevelVersion>::resize(int w, int h) +-{ + if (view_impl->frame) + { + view_impl->frame->calculate_resize_size(w, h); +@@ -460,51 +361,23 @@ void wayfire_xdg_view<XdgToplevelVersion>::resize(int + if (should_resize_client({w, h}, current_size)) + { + this->last_size_request = {w, h}; +- _resize(w, h); ++ wlr_xdg_toplevel_set_size(xdg_toplevel->base, w, h); + } + } + +-template<> +-void wayfire_xdg_view<wlr_xdg_toplevel>::_resize(int w, int h) ++void wayfire_xdg_view::request_native_size() + { +- wlr_xdg_toplevel_set_size(xdg_toplevel->base, w, h); +-} +- +-template<> +-void wayfire_xdg_view<wlr_xdg_toplevel_v6>::_resize(int w, int h) +-{ +- wlr_xdg_toplevel_v6_set_size(xdg_toplevel->base, w, h); +-} +- +-template<> +-void wayfire_xdg_view<wlr_xdg_toplevel>::request_native_size() +-{ + wlr_xdg_toplevel_set_size(xdg_toplevel->base, 0, 0); + } + +-template<> +-void wayfire_xdg_view<wlr_xdg_toplevel_v6>::request_native_size() ++void wayfire_xdg_view::close() + { +- wlr_xdg_toplevel_v6_set_size(xdg_toplevel->base, 0, 0); +-} +- +-template<> +-void wayfire_xdg_view<wlr_xdg_toplevel>::close() +-{ + wlr_xdg_toplevel_send_close(xdg_toplevel->base); + wf::wlr_view_t::close(); + } + +-template<> +-void wayfire_xdg_view<wlr_xdg_toplevel_v6>::close() ++void wayfire_xdg_view::destroy() + { +- wlr_xdg_surface_v6_send_close(xdg_toplevel->base); +- wf::wlr_view_t::close(); +-} +- +-template<class XdgToplevelVersion> +-void wayfire_xdg_view<XdgToplevelVersion>::destroy() +-{ + on_map.disconnect(); + on_unmap.disconnect(); + on_destroy.disconnect(); +@@ -522,13 +395,11 @@ void wayfire_xdg_view<XdgToplevelVersion>::destroy() + wf::wlr_view_t::destroy(); + } + +-static wlr_xdg_shell *xdg_handle; +-static wlr_xdg_shell_v6 *xdg_handle_v6; ++static wlr_xdg_shell *xdg_handle = nullptr; + +- + void wf::init_xdg_shell() + { +- static wf::wl_listener_wrapper on_xdg_created, on_xdg6_created; ++ static wf::wl_listener_wrapper on_xdg_created; + xdg_handle = wlr_xdg_shell_create(wf::get_core().display); + + if (xdg_handle) +@@ -539,34 +410,9 @@ void wf::init_xdg_shell() + if (surf->role == WLR_XDG_SURFACE_ROLE_TOPLEVEL) + { + wf::get_core().add_view( +- std::make_unique<wayfire_xdg_view<wlr_xdg_toplevel>>( +- surf->toplevel)); ++ std::make_unique<wayfire_xdg_view>(surf->toplevel)); + } + }); + on_xdg_created.connect(&xdg_handle->events.new_surface); + } +- +- xdg_handle_v6 = wlr_xdg_shell_v6_create(wf::get_core().display); +- if (xdg_handle_v6) +- { +- on_xdg6_created.set_callback([&] (void *data) +- { +- auto surf = static_cast<wlr_xdg_surface_v6*>(data); +- if (surf->role == WLR_XDG_SURFACE_V6_ROLE_TOPLEVEL) +- { +- wf::get_core().add_view( +- std::make_unique<wayfire_xdg_view<wlr_xdg_toplevel_v6>>( +- surf->toplevel)); +- } +- }); +- on_xdg6_created.connect(&xdg_handle_v6->events.new_surface); +- } + } +- +-template class wayfire_xdg_popup<wlr_xdg_popup_v6>; +- +-template class wayfire_xdg_popup<wlr_xdg_popup>; +- +-template class wayfire_xdg_view<wlr_xdg_toplevel_v6>; +- +-template class wayfire_xdg_view<wlr_xdg_toplevel>; +--- src/view/xdg-shell.hpp.orig 2020-08-04 18:56:17 UTC ++++ src/view/xdg-shell.hpp +@@ -5,14 +5,11 @@ + extern "C" + { + #include <wlr/types/wlr_xdg_shell.h> +-#include <wlr/types/wlr_xdg_shell_v6.h> + } + + /** +- * A class for xdg-shell(and -v6) popups. XdgPopupVersion can be either a +- * `wlr_xdg_popup` or `wlr_xdg_popup_v6`. ++ * A class for xdg-shell popups + */ +-template<class XdgPopupVersion> + class wayfire_xdg_popup : public wf::wlr_view_t + { + protected: +@@ -21,13 +18,12 @@ class wayfire_xdg_popup : public wf::wlr_view_t + parent_title_changed, parent_app_id_changed; + + wf::wl_idle_call pending_close; +- XdgPopupVersion *popup; ++ wlr_xdg_popup *popup; + void unconstrain(); +- void _do_unconstrain(wlr_box box); + void update_position(); + + public: +- wayfire_xdg_popup(XdgPopupVersion *popup); ++ wayfire_xdg_popup(wlr_xdg_popup *popup); + void initialize() override; + + wlr_view_t *popup_parent; +@@ -39,12 +35,8 @@ class wayfire_xdg_popup : public wf::wlr_view_t + virtual void close() override; + }; + +-template<class XdgPopupVersion> +-void create_xdg_popup(XdgPopupVersion *popup); +-template<> +-void create_xdg_popup<wlr_xdg_popup>(wlr_xdg_popup *popup); ++void create_xdg_popup(wlr_xdg_popup *popup); + +-template<class XdgToplevelVersion> + class wayfire_xdg_view : public wf::wlr_view_t + { + private: +@@ -55,13 +47,13 @@ class wayfire_xdg_view : public wf::wlr_view_t + on_set_title, on_set_app_id; + + wf::point_t xdg_surface_offset = {0, 0}; +- XdgToplevelVersion *xdg_toplevel; ++ wlr_xdg_toplevel *xdg_toplevel; + + protected: + void initialize() override final; + + public: +- wayfire_xdg_view(XdgToplevelVersion *toplevel); ++ wayfire_xdg_view(wlr_xdg_toplevel *toplevel); + virtual ~wayfire_xdg_view(); + + void map(wlr_surface *surface) final; +@@ -72,11 +64,9 @@ class wayfire_xdg_view : public wf::wlr_view_t + + void set_tiled(uint32_t edges) final; + void set_activated(bool act) final; +- void _set_activated(bool act); + void set_fullscreen(bool full) final; + + void resize(int w, int h) final; +- void _resize(int w, int h); + void request_native_size() override final; + + void destroy() final;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202011081648.0A8Gm2mT073443>