Date: Thursday, October 17, 2019 @ 11:16:31 Author: felixonmars Revision: 516406
upgpkg: deepin-kwin 0.1.0-3 fix compatibility issues with kwin 5.17 (https://github.com/linuxdeepin/developer-center/issues/1568) Added: deepin-kwin/trunk/kwin-5.17.patch Modified: deepin-kwin/trunk/PKGBUILD -----------------+ PKGBUILD | 13 ++++++++-- kwin-5.17.patch | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2019-10-17 11:06:43 UTC (rev 516405) +++ PKGBUILD 2019-10-17 11:16:31 UTC (rev 516406) @@ -4,7 +4,7 @@ pkgname=deepin-kwin pkgver=0.1.0 -pkgrel=2 +pkgrel=3 pkgdesc='KWin configures on DDE' arch=('x86_64') url="https://github.com/linuxdeepin/dde-kwin" @@ -11,9 +11,16 @@ license=('GPL3') depends=('deepin-qt5integration' 'kwin') makedepends=('cmake' 'expac' 'qt5-tools') -source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxdeepin/dde-kwin/archive/$pkgver.tar.gz") -sha512sums=('ae670e9f7763df5d614b39e6e0752e04a8ff56cfedaac06272a3a626fe61b3be11cc68d17fb6e2758d50b55a8895e9932d4a70720fcecd8c0e26737aa35a6061') +source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxdeepin/dde-kwin/archive/$pkgver.tar.gz" + kwin-5.17.patch) +sha512sums=('ae670e9f7763df5d614b39e6e0752e04a8ff56cfedaac06272a3a626fe61b3be11cc68d17fb6e2758d50b55a8895e9932d4a70720fcecd8c0e26737aa35a6061' + '6ac5358d4b8aeefd086e4396603cff453051e5bba7237c1e1524659de6741142be840da90556606fda47c8ecde8da30df4caf2508611d7b5de1066c2a33f8521') +prepare() { + cd dde-kwin-$pkgver + patch -p2 -i ../kwin-5.17.patch +} + build() { cd dde-kwin-$pkgver cmake . -DCMAKE_INSTALL_PREFIX=/usr -DKWIN_VERSION=$(expac %v kwin | cut -d - -f 1) Added: kwin-5.17.patch =================================================================== --- kwin-5.17.patch (rev 0) +++ kwin-5.17.patch 2019-10-17 11:16:31 UTC (rev 516406) @@ -0,0 +1,64 @@ +diff --git a/dde-kwin-0.1.0/plugins/kwin-xcb/lib/kwinutils.cpp.orig b/dde-kwin-0.1.0/plugins/kwin-xcb/lib/kwinutils.cpp +index 999f23b..b618c54 100644 +--- a/dde-kwin-0.1.0/plugins/kwin-xcb/lib/kwinutils.cpp.orig ++++ b/dde-kwin-0.1.0/plugins/kwin-xcb/lib/kwinutils.cpp +@@ -129,10 +129,6 @@ class Compositor : public QObject + public: + enum SuspendReason { NoReasonSuspend = 0, UserSuspend = 1<<0, BlockRuleSuspend = 1<<1, ScriptSuspend = 1<<2, AllReasonSuspend = 0xff }; + static Compositor *s_compositor; +- +-public Q_SLOTS: +- void suspend(Compositor::SuspendReason reason); +- void resume(Compositor::SuspendReason reason); + }; + + // 光标管理 +@@ -222,6 +218,7 @@ class KWinInterface + typedef xcb_cursor_t (*X11CursorGetCursor)(Qt::CursorShape); + typedef KWin::Options::WindowOperation (*OptionsWindowOperation)(const QString &, bool); + typedef QObject *(*WorkspaceFindClient)(KWinUtils::Predicate, xcb_window_t); ++ typedef void (*CompositorToggle)(void *, KWin::Compositor::SuspendReason); + public: + KWinInterface() + { +@@ -232,6 +229,8 @@ public: + x11CursorGetCursor = (X11CursorGetCursor)KWinUtils::resolve("_ZN4KWin6Cursor12getX11CursorEN2Qt11CursorShapeE"); + optionsWindowOperation = (OptionsWindowOperation)KWinUtils::resolve("_ZN4KWin7Options15windowOperationERK7QStringb"); + findClient = (WorkspaceFindClient)KWinUtils::resolve("_ZNK4KWin9Workspace10findClientENS_9PredicateEj"); ++ compositorSuspend = (CompositorToggle)KWinUtils::resolve("_ZN4KWin13X11Compositor7suspendENS0_13SuspendReasonE"); ++ compositorResume = (CompositorToggle)KWinUtils::resolve("_ZN4KWin13X11Compositor6resumeENS0_13SuspendReasonE"); + } + + ClientMaximizeMode clientMaximizeMode; +@@ -241,6 +240,8 @@ public: + X11CursorGetCursor x11CursorGetCursor; + OptionsWindowOperation optionsWindowOperation; + WorkspaceFindClient findClient; ++ CompositorToggle compositorSuspend; ++ CompositorToggle compositorResume; + }; + + Q_GLOBAL_STATIC(KWinInterface, interface) +@@ -609,18 +610,18 @@ void KWinUtils::ShowWorkspacesView() + + void KWinUtils::ResumeCompositor(int type) + { +- if (!KWin::Compositor::s_compositor) ++ if (!KWin::Compositor::s_compositor || !interface->compositorResume) + return; + +- KWin::Compositor::s_compositor->resume(static_cast<KWin::Compositor::SuspendReason>(type)); ++ interface->compositorResume(KWin::Compositor::s_compositor, static_cast<KWin::Compositor::SuspendReason>(type)); + } + + void KWinUtils::SuspendCompositor(int type) + { +- if (!KWin::Compositor::s_compositor) ++ if (!KWin::Compositor::s_compositor || !interface->compositorSuspend) + return; + +- KWin::Compositor::s_compositor->suspend(static_cast<KWin::Compositor::SuspendReason>(type)); ++ interface->compositorSuspend(KWin::Compositor::s_compositor, static_cast<KWin::Compositor::SuspendReason>(type)); + } + + void KWinUtils::ShowAllWindowsView()
