[arch-commits] Commit in deepin-kwin/trunk (3 files)
Felix Yan
felixonmars at gemini.archlinux.org
Thu Apr 21 23:47:44 UTC 2022
Date: Thursday, April 21, 2022 @ 23:47:44
Author: felixonmars
Revision: 1187285
upgpkg: deepin-kwin 5.4.26-3
Added:
deepin-kwin/trunk/deepin-kwin-added-functions-from-their-forked-kwin.patch
Modified:
deepin-kwin/trunk/PKGBUILD
deepin-kwin/trunk/dde-kwin.5.4.26.patch
----------------------------------------------------------+
PKGBUILD | 16 +
dde-kwin.5.4.26.patch | 142 +++++++++----
deepin-kwin-added-functions-from-their-forked-kwin.patch | 133 ++++++++++++
3 files changed, 246 insertions(+), 45 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2022-04-21 22:47:37 UTC (rev 1187284)
+++ PKGBUILD 2022-04-21 23:47:44 UTC (rev 1187285)
@@ -4,7 +4,7 @@
pkgname=deepin-kwin
pkgver=5.4.26
-pkgrel=2
+pkgrel=3
pkgdesc='KWin configures on DDE'
arch=('x86_64')
url="https://github.com/linuxdeepin/dde-kwin"
@@ -13,21 +13,31 @@
makedepends=('extra-cmake-modules' 'ninja' 'qt5-tools')
source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxdeepin/dde-kwin/archive/$pkgver.tar.gz"
$pkgname-tabbox-chameleon-rename.patch
+ $pkgname-added-functions-from-their-forked-kwin.patch
dde-kwin.5.4.26.patch)
sha512sums=('0ce42973d5c4fb861e758f27b7afc3ebe3c743b7157b527c08771bc5d624e124914fbc92ad9e1a9845cc8d302f83352d6991cb287bf2447dbab6a2e87013809c'
'454889eaaf48f0e329d6cde870f57dd25dc1f9f88ade234fdb058249c5a9602fdd43dbfffe7c79c0d05843cec500285e719233bf1b4141c32b387bd1c86e02d7'
- 'a94b808c79cae9f58eefed0075f8132692541fa0c5cdcf326b3ac61720371e82016158efee32fc57e151dde9f6342186d00d21796b312d3b93193324d2c09eab')
+ '5ba72bb39469f77895a171eb49e787d5045df422c4b9937e85362d022d680710c13c6dd526456df34dc151b1f01101dbc08ad53cd31fbaf069b0bfb84f0ea07d'
+ '4186adebecc65e8586c7c7594557bc5421a9884a789052b0270007a4268cc0ea017357fce7de61c7a4e78ee59432f68561f9003d9ea37cd47e79b25cfa08e2f2')
prepare() {
cd dde-kwin-$pkgver
sed -i 's|/usr/share/backgrounds/default_background.jpg|/usr/share/backgrounds/deepin/desktop.jpg|' plugins/kwineffects/multitasking/background.cpp
patch -p1 -i ../dde-kwin.5.4.26.patch
+ patch -Rp1 -i ../$pkgname-added-functions-from-their-forked-kwin.patch
patch -p1 -i ../$pkgname-tabbox-chameleon-rename.patch
+ sed -i 's/kwin 5.21.5/kwin 5.24.4/' configures/kwin_no_scale.in
}
build() {
cd dde-kwin-$pkgver
- cmake . -GNinja -DCMAKE_INSTALL_PREFIX=/usr -DUSE_WINDOW_TOOL=OFF -DENABLE_BUILTIN_BLUR=OFF -DENABLE_KDECORATION=ON -DENABLE_BUILTIN_MULTITASKING=OFF -DENABLE_BUILTIN_BLACK_SCREEN=OFF
+ cmake . -GNinja -DCMAKE_INSTALL_PREFIX=/usr \
+ -DUSE_WINDOW_TOOL=OFF \
+ -DENABLE_BUILTIN_BLUR=OFF \
+ -DENABLE_KDECORATION=ON \
+ -DENABLE_BUILTIN_MULTITASKING=OFF \
+ -DENABLE_BUILTIN_BLACK_SCREEN=OFF \
+ -DUSE_DEEPIN_WAYLAND=OFF
ninja
}
Modified: dde-kwin.5.4.26.patch
===================================================================
--- dde-kwin.5.4.26.patch 2022-04-21 22:47:37 UTC (rev 1187284)
+++ dde-kwin.5.4.26.patch 2022-04-21 23:47:44 UTC (rev 1187285)
@@ -1,8 +1,19 @@
+commit df1937194c07b850425bd047ed4fc8a8986b0609
+Author: justforlxz <justforlxz at gmail.com>
+Date: Wed Apr 6 20:24:55 2022 +0800
+
+ refactor: scissor-window
+
+ Adapt to kwin 4.24
+
+ Log: Adapt to kwin 4.24
+ Change-Id: I5da82f2b20cfc6ed165e2e0559fa556624de1d77
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index cbbf79e0c..8321a362c 100644
+index cbbf79e0c..60c2f3cd8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -15,6 +15,20 @@ add_definitions(
+@@ -15,6 +15,26 @@ add_definitions(
-DPROJECT_VERSION=\\"${PROJECT_VERSION}\\"
)
@@ -11,6 +22,8 @@
+option(USE_DEEPIN_WM_DBUS "use deepin-wm dbus service" ON)
+option(USE_TABBOX "use deepin style tabbox" ON)
+option(USE_WINDOW_TOOL "support wayland and x11" ON)
++option(USE_DEEPIN_WAYLAND "use deepin wayland" ON)
++option(USE_KWIN_NO_SCALE "use kwin_no_scale script" ON)
+option(ENABLE_BUILTIN_SCISSOR_WINDOW "enable deepin built-in scissor window plugin" ON)
+option(ENABLE_BUILTIN_BLUR "enable deepin built-in blur plugin" ON)
+option(ENABLE_BUILTIN_MULTITASKING "enable deepin built-in multitasking plugin" ON)
@@ -20,10 +33,14 @@
+ add_definitions(-DENABLE_BUILTIN_BLUR)
+endif(ENABLE_BUILTIN_BLUR)
+
++if (USE_DEEPIN_WAYLAND)
++ add_definitions(-DUSE_DEEPIN_WAYLAND)
++endif(USE_DEEPIN_WAYLAND)
++
#when "KWIN_VERSION > KWIN_VERSION_CHECK(5, 18, 90, 0)"
find_path(
KWaylandServerPath
-@@ -91,14 +105,28 @@ if (KWIN_VERSION)
+@@ -91,14 +111,28 @@ if (KWIN_VERSION)
)
endif()
@@ -63,13 +80,12 @@
+
+add_subdirectory(configures)
diff --git a/configures/CMakeLists.txt b/configures/CMakeLists.txt
-index 4ac0a906d..dfbdeaf48 100644
+index 4ac0a906d..99e0d0970 100644
--- a/configures/CMakeLists.txt
+++ b/configures/CMakeLists.txt
@@ -1,9 +1,17 @@
--configure_file(kwin_no_scale.in kwin_no_scale)
-+option(USE_KWIN_NO_SCALE "use deepin LD_PRELOAD kwin_no_scale" ON)
-+
+ configure_file(kwin_no_scale.in kwin_no_scale)
+
+if(ENABLE_BUILTIN_BLUR)
+ set(ENABLE_BUILTIN_BLUR_STRING "false")
+ else()
@@ -77,7 +93,7 @@
+ endif()
+
+configure_file(kwinrc.in kwinrc)
-
++
install(
FILES
kglobalshortcutsrc
@@ -86,7 +102,7 @@
kwinrulesrc
klaunchrc
kdeglobals
-@@ -11,4 +19,7 @@ install(
+@@ -11,4 +19,9 @@ install(
"/etc/xdg"
)
@@ -93,8 +109,50 @@
-install_files("/bin" FILES ${CMAKE_CURRENT_BINARY_DIR}/kwin_no_scale)
+if (USE_KWIN_NO_SCALE)
+ configure_file(kwin_no_scale.in kwin_no_scale)
-+ install_files("/bin" FILES ${CMAKE_CURRENT_BINARY_DIR}/kwin_no_scale)
++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kwin_no_scale
++ DESTINATION bin
++ PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+endif()
+diff --git a/configures/kwin_no_scale.in b/configures/kwin_no_scale.in
+old mode 100755
+new mode 100644
+index d34aba1f7..8b4a5b18a
+--- a/configures/kwin_no_scale.in
++++ b/configures/kwin_no_scale.in
+@@ -1,20 +1,19 @@
+-#!/bin/sh
+-
+-KWIN_VERSION=`kwin_x11 --version 2>/dev/null`
+-DDE_KWIN_SUPPORTED_VERSION='kwin 5.21.5'
+-if [ "$KWIN_VERSION" \> "$DDE_KWIN_SUPPORTED_VERSION" ]; then
+- kwin_x11 $@
+- exit 0
+-fi
++#!/bin/bash
+
+ if [ -n "$HOME" ];then
+ cp -n /etc/xdg/kglobalshortcutsrc $HOME/.config/kglobalshortcutsrc
+ fi
+
+-EXECUTE_PATH=$(cd `dirname $0`; pwd)
++ARGS=$@
++
++function runDeepinKWin() {
++ local EXECUTE_PATH=$1
++ export LD_PRELOAD=${PLUGIN_INSTALL_PATH}/libdde-kwin-xcb.so:$LD_PRELOAD
++ export QT_SCALE_FACTOR=1
++ #":"后的"appFilePath=..."会传递给QPlatformIntegration::create调用
++ # appFilePath 的值会覆盖 QCoreApplication::applicationPath,以确保kwin崩溃自动重启时也是启动的kwin_no_scale脚本
++ kwin_x11 -platform dde-kwin-xcb:appFilePath=$EXECUTE_PATH/kwin_no_scale $ARGS
++ return $?
++}
+
+-export "LD_PRELOAD=${PLUGIN_INSTALL_PATH}/libdde-kwin-xcb.so:$LD_PRELOAD"
+-export QT_SCALE_FACTOR=1
+-#":"后的"appFilePath=..."会传递给QPlatformIntegration::create调用
+-# appFilePath 的值会覆盖 QCoreApplication::applicationPath,以确保kwin崩溃自动重启时也是启动的kwin_no_scale脚本
+-kwin_x11 -platform dde-kwin-xcb:appFilePath=$EXECUTE_PATH/kwin_no_scale $@
++runDeepinKWin "$(cd `dirname $0`; pwd)" || kwin_x11 $ARGS
diff --git a/configures/kwinrc b/configures/kwinrc.in
similarity index 98%
rename from configures/kwinrc
@@ -122,21 +180,6 @@
find_package(KF5Config REQUIRED)
find_package(KF5WindowSystem REQUIRED)
find_package(KF5GlobalAccel REQUIRED)
-diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt
-index 11695a379..7a7e4bcbb 100644
---- a/plugins/CMakeLists.txt
-+++ b/plugins/CMakeLists.txt
-@@ -1,3 +1,9 @@
- add_subdirectory(platforms)
--add_subdirectory(kdecoration)
-+
-+option(ENABLE_KDECORATION "enable deepin kdecoration plugin" ON)
-+
-+if (ENABLE_KDECORATION)
-+ add_subdirectory(kdecoration)
-+endif()
-+
- add_subdirectory(kwineffects)
diff --git a/plugins/kdecoration/CMakeLists.txt b/plugins/kdecoration/CMakeLists.txt
index 0a34ea25d..60196cf37 100644
--- a/plugins/kdecoration/CMakeLists.txt
@@ -197,7 +240,7 @@
#endif // CHAMELEON_H
diff --git a/plugins/kdecoration/chameleonconfig.cpp b/plugins/kdecoration/chameleonconfig.cpp
-index 8b6a03b8e..505a5639d 100644
+index 8b6a03b8e..3a12e93a1 100644
--- a/plugins/kdecoration/chameleonconfig.cpp
+++ b/plugins/kdecoration/chameleonconfig.cpp
@@ -141,7 +141,7 @@ void ChameleonConfig::onConfigChanged()
@@ -218,12 +261,16 @@
connect(KWinUtils::workspace(), SIGNAL(unmanagedAdded(KWin::Unmanaged*)), this, SLOT(onUnmanagedAdded(KWin::Unmanaged*)));
connect(KWinUtils::compositor(), SIGNAL(compositingToggled(bool)), this, SLOT(onCompositingToggled(bool)));
connect(KWinUtils::instance(), &KWinUtils::windowPropertyChanged, this, &ChameleonConfig::onWindowPropertyChanged);
-@@ -1225,7 +1225,7 @@ void ChameleonConfig::buildKWinX11Shadow(QObject *window)
+@@ -1225,7 +1225,11 @@ void ChameleonConfig::buildKWinX11Shadow(QObject *window)
effect = window->findChild<KWin::EffectWindow*>(QString(), Qt::FindDirectChildrenOnly);
if (effect) {
- QRect shape_rect = effect->shape().boundingRect();
++#if !defined(KWIN_VERSION) || KWIN_VERSION < KWIN_VERSION_CHECK(5, 23, 4, 0)
++ QRect shape_rect = effect->geometry();
++#else
+ QRect shape_rect = effect->clientGeometry();
++#endif
const QRect window_rect(QPoint(0, 0), window->property("size").toSize());
// 减去窗口的shape区域
@@ -297,7 +344,7 @@
rename from plugins/kwineffects/scissor-window/fullmask.frag.110
rename to plugins/kwineffects/scissor-window/fullmask_core.frag
diff --git a/plugins/kwineffects/scissor-window/glsl.qrc b/plugins/kwineffects/scissor-window/glsl.qrc
-index 8b2ecb6f3..69dd34a7e 100644
+index 8b2ecb6f3..2e6bc448d 100644
--- a/plugins/kwineffects/scissor-window/glsl.qrc
+++ b/plugins/kwineffects/scissor-window/glsl.qrc
@@ -1,10 +1,16 @@
@@ -311,8 +358,8 @@
<qresource prefix="/effect-shaders-1.10">
- <file alias="corner-mask.frag">cornermask.frag.110</file>
- <file alias="full-mask.frag">fullmask.frag.110</file>
-+ <file alias="corner-mask.frag">cornermask_core.frag</file>
-+ <file alias="full-mask.frag">fullmask_core.frag</file>
++ <file alias="cornermask.frag">cornermask_core.frag</file>
++ <file alias="fullmask.frag">fullmask_core.frag</file>
</qresource>
<qresource prefix="/effect-shaders-1.40">
- <file alias="corner-mask.frag">cornermask.frag.140</file>
@@ -322,7 +369,7 @@
</qresource>
</RCC>
diff --git a/plugins/kwineffects/scissor-window/main.cpp b/plugins/kwineffects/scissor-window/main.cpp
-index 73544556c..58438b49e 100644
+index 73544556c..8d9659e19 100644
--- a/plugins/kwineffects/scissor-window/main.cpp
+++ b/plugins/kwineffects/scissor-window/main.cpp
@@ -23,19 +23,27 @@
@@ -330,7 +377,7 @@
{
Q_OBJECT
- Q_INTERFACES(KPluginFactory)
-+#if defined(KWIN_VERSION) && KWIN_VERSION < KWIN_VERSION_CHECK(5, 23, 4, 0)
++#if KWIN_VERSION_MAJ <= 5 && KWIN_VERSION_MIN < 23
Q_PLUGIN_METADATA(IID KPluginFactory_iid FILE "scissor-window.json")
-
+#else
@@ -398,7 +445,7 @@
+ "X-Plasma-MainScript": ""
}
diff --git a/plugins/kwineffects/scissor-window/scissorwindow.cpp b/plugins/kwineffects/scissor-window/scissorwindow.cpp
-index a80118421..b250d891a 100644
+index a80118421..4785c1f22 100644
--- a/plugins/kwineffects/scissor-window/scissorwindow.cpp
+++ b/plugins/kwineffects/scissor-window/scissorwindow.cpp
@@ -19,10 +19,6 @@
@@ -420,15 +467,23 @@
Q_DECLARE_METATYPE(QPainterPath)
-@@ -178,16 +175,16 @@ ScissorWindow::ScissorWindow(QObject *, const QVariantList &)
+@@ -178,16 +175,24 @@ ScissorWindow::ScissorWindow(QObject *, const QVariantList &)
: Effect()
{
// 构建用于窗口圆角特效的着色器
- m_shader = KWin::ShaderManager::instance()->generateShaderFromResources(KWin::ShaderTrait::MapTexture, QString(), "corner-mask.frag");
++#if KWIN_VERSION_MAJ <= 5 && KWIN_VERSION_MIN < 23
++ m_shader = KWin::ShaderManager::instance()->generateShaderFromResources(KWin::ShaderTrait::MapTexture, QString(), ":/cornermask.frag");
++#else
+ m_shader = KWin::ShaderManager::instance()->generateShaderFromFile(KWin::ShaderTrait::MapTexture, QString(), ":/cornermask.frag");
++#endif
// 构建用于自定义窗口形状的着色器
- m_fullMaskShader = KWin::ShaderManager::instance()->generateShaderFromResources(KWin::ShaderTrait::MapTexture, QString(), "full-mask.frag");
++#if KWIN_VERSION_MAJ <= 5 && KWIN_VERSION_MIN < 23
++ m_fullMaskShader = KWin::ShaderManager::instance()->generateShaderFromResources(KWin::ShaderTrait::MapTexture, QString(), ":/fullmask.frag");
++#else
+ m_fullMaskShader = KWin::ShaderManager::instance()->generateShaderFromFile(KWin::ShaderTrait::MapTexture, QString(), ":/fullmask.frag");
++#endif
if (!m_shader->isValid()) {
- // qWarning() << Q_FUNC_INFO << "Invalid fragment shader of corner mask";
@@ -441,7 +496,7 @@
}
}
-@@ -205,6 +202,10 @@ void ScissorWindow::drawWindow(KWin::EffectWindow *w, int mask, QRegion region,
+@@ -205,6 +210,10 @@ void ScissorWindow::drawWindow(KWin::EffectWindow *w, int mask, QRegion region,
return Effect::drawWindow(w, mask, region, data);
}
@@ -452,16 +507,19 @@
MaskCache::TextureData mask_texture = MaskCache::instance()->getTextureByWindow(w);
if (!mask_texture) {
-@@ -214,7 +215,7 @@ void ScissorWindow::drawWindow(KWin::EffectWindow *w, int mask, QRegion region,
+@@ -214,7 +223,11 @@ void ScissorWindow::drawWindow(KWin::EffectWindow *w, int mask, QRegion region,
QRegion corner_region;
if (!mask_texture->customMask) {
-- const QRect window_rect = w->geometry();
++#if KWIN_VERSION_MAJ <= 5 && KWIN_VERSION_MIN < 23
+ const QRect window_rect = w->geometry();
++#else
+ const QRect window_rect = w->frameGeometry();
++#endif
QRect corner_rect(window_rect.topLeft(), mask_texture->size);
// top left
-@@ -241,6 +242,7 @@ void ScissorWindow::drawWindow(KWin::EffectWindow *w, int mask, QRegion region,
+@@ -241,6 +254,7 @@ void ScissorWindow::drawWindow(KWin::EffectWindow *w, int mask, QRegion region,
}
}
@@ -469,7 +527,7 @@
KWin::WindowQuadList decoration_quad_list;
KWin::WindowQuadList content_quad_list;
-@@ -257,20 +259,65 @@ void ScissorWindow::drawWindow(KWin::EffectWindow *w, int mask, QRegion region,
+@@ -257,20 +271,65 @@ void ScissorWindow::drawWindow(KWin::EffectWindow *w, int mask, QRegion region,
break;
}
}
@@ -535,7 +593,7 @@
Effect::drawWindow(w, mask, new_region, data);
}
-@@ -278,6 +325,9 @@ void ScissorWindow::drawWindow(KWin::EffectWindow *w, int mask, QRegion region,
+@@ -278,6 +337,9 @@ void ScissorWindow::drawWindow(KWin::EffectWindow *w, int mask, QRegion region,
region = region - new_region;
}
@@ -545,7 +603,7 @@
// 将mask材质绑定到第二个材质
glActiveTexture(GL_TEXTURE1);
mask_texture->bind();
-@@ -303,52 +353,13 @@ void ScissorWindow::drawWindow(KWin::EffectWindow *w, int mask, QRegion region,
+@@ -303,52 +365,13 @@ void ScissorWindow::drawWindow(KWin::EffectWindow *w, int mask, QRegion region,
// 此时只允许绘制窗口内容
auto old_shader = data.shader;
@@ -602,7 +660,7 @@
data.shader = old_shader;
-@@ -357,4 +368,6 @@ void ScissorWindow::drawWindow(KWin::EffectWindow *w, int mask, QRegion region,
+@@ -357,4 +380,6 @@ void ScissorWindow::drawWindow(KWin::EffectWindow *w, int mask, QRegion region,
glActiveTexture(GL_TEXTURE1);
mask_texture->unbind();
glActiveTexture(GL_TEXTURE0);
Added: deepin-kwin-added-functions-from-their-forked-kwin.patch
===================================================================
--- deepin-kwin-added-functions-from-their-forked-kwin.patch (rev 0)
+++ deepin-kwin-added-functions-from-their-forked-kwin.patch 2022-04-21 23:47:44 UTC (rev 1187285)
@@ -0,0 +1,133 @@
+From 23a92e4839509ee3ef8886618ce1ee4cfbec3427 Mon Sep 17 00:00:00 2001
+From: wangxinbo <wangxinbo at uniontech.com>
+Date: Tue, 11 Aug 2020 14:19:26 +0800
+Subject: [PATCH] feat: add touch pad double click with three fingers to move
+ active client
+
+pms task id 30501
+---
+ deepin-wm-dbus/com.deepin.wm.xml.in | 6 ++++++
+ deepin-wm-dbus/deepinwmfaker.cpp | 10 ++++++++++
+ deepin-wm-dbus/deepinwmfaker.h | 3 +++
+ plugins/platforms/lib/kwinutils.cpp | 18 ++++++++++++++++++
+ plugins/platforms/lib/kwinutils.h | 2 ++
+ .../plugin/org.kde.kwin.KWinUtils.xml | 6 ++++++
+ 6 files changed, 45 insertions(+)
+
+diff --git a/deepin-wm-dbus/com.deepin.wm.xml.in b/deepin-wm-dbus/com.deepin.wm.xml.in
+index 8a45365..ff4629a 100644
+--- a/deepin-wm-dbus/com.deepin.wm.xml.in
++++ b/deepin-wm-dbus/com.deepin.wm.xml.in
+@@ -184,4 +184,10 @@
+ <method name="GetCurrentDesktopStatus">
+ <arg type="b" name="isDesktop" direction="out"/>
+ </method>
++ <method name="TouchToMove">
++ <arg type="i" name="x" direction="in"/>
++ <arg type="i" name="y" direction="in"/>
++ </method>
++ <method name="ClearMoveStatus">
++ </method>
+ </interface>
+diff --git a/deepin-wm-dbus/deepinwmfaker.cpp b/deepin-wm-dbus/deepinwmfaker.cpp
+index 453280d..2f3f48a 100644
+--- a/deepin-wm-dbus/deepinwmfaker.cpp
++++ b/deepin-wm-dbus/deepinwmfaker.cpp
+@@ -681,6 +681,20 @@ void DeepinWMFaker::BeginToMoveActiveWindow()
+ m_kwinUtilsInter->WindowMove();
+ }
+
++void DeepinWMFaker::TouchToMove(int x, int y)
++{
++#ifndef DISABLE_DEEPIN_WM
++ m_kwinUtilsInter->TouchPadToMoveWindow(x,y);
++#endif
++}
++
++void DeepinWMFaker::ClearMoveStatus()
++{
++#ifndef DISABLE_DEEPIN_WM
++ m_kwinUtilsInter->EndTouchPadToMoveWindow();
++#endif
++}
++
+ void DeepinWMFaker::SwitchApplication(bool backward)
+ {
+ if (!m_kwinUtilsInter->isValid()) {
+diff --git a/deepin-wm-dbus/deepinwmfaker.h b/deepin-wm-dbus/deepinwmfaker.h
+index 9ee73ab..ae6374a 100644
+--- a/deepin-wm-dbus/deepinwmfaker.h
++++ b/deepin-wm-dbus/deepinwmfaker.h
+@@ -136,6 +136,8 @@ public Q_SLOTS:
+ bool GetIsShowDesktop();
+ void SetShowDesktop(bool isShowDesktop);
+
++ void TouchToMove(int x, int y);
++ void ClearMoveStatus();
+ Q_SIGNALS:
+ void WorkspaceBackgroundChanged(int index, const QString &newUri);
+ void WorkspaceBackgroundChangedForMonitor(int index, const QString &strMonitorName, const QString &newUri);
+diff --git a/plugins/platforms/lib/kwinutils.cpp b/plugins/platforms/lib/kwinutils.cpp
+index 8bf9e27..0be9682 100644
+--- a/plugins/platforms/lib/kwinutils.cpp
++++ b/plugins/platforms/lib/kwinutils.cpp
+@@ -88,6 +88,8 @@ public Q_SLOTS:
+ // change to Compositor::compositing()
+ bool compositing() const;
+ #endif
++ void slotTouchPadTomoveWindow(int x, int y);
++ void slotEndTouchPadToMoveWindow();
+
+ #if !defined(KWIN_VERSION) || KWIN_VERSION < KWIN_VERSION_CHECK(5, 10, 95, 0)
+ // kwin < 5.10.95
+@@ -1082,6 +1084,22 @@ void KWinUtils::WindowMove()
+ }
+ }
+
++void KWinUtils::TouchPadToMoveWindow(int x, int y)
++{
++ KWin::Workspace *ws = static_cast<KWin::Workspace *>(workspace());
++ if (ws) {
++ ws->slotTouchPadTomoveWindow(x,y);
++ }
++}
++
++void KWinUtils::EndTouchPadToMoveWindow()
++{
++ KWin::Workspace *ws = static_cast<KWin::Workspace *>(workspace());
++ if (ws) {
++ ws->slotEndTouchPadToMoveWindow();
++ }
++}
++
+ void KWinUtils::WindowMaximize()
+ {
+ KWin::Workspace *ws = static_cast<KWin::Workspace *>(workspace());
+diff --git a/plugins/platforms/lib/kwinutils.h b/plugins/platforms/lib/kwinutils.h
+index 57edb86..2c75875 100644
+--- a/plugins/platforms/lib/kwinutils.h
++++ b/plugins/platforms/lib/kwinutils.h
+@@ -156,6 +156,8 @@ public Q_SLOTS:
+ void ShowWindowsView();
+ void ResumeCompositor(int type);
+ void SuspendCompositor(int type);
++ void TouchPadToMoveWindow(int x, int y);
++ void EndTouchPadToMoveWindow();
+
+ Q_SIGNALS:
+ void initialized();
+diff --git a/plugins/platforms/plugin/org.kde.kwin.KWinUtils.xml b/plugins/platforms/plugin/org.kde.kwin.KWinUtils.xml
+index aa61b6c..5854ed0 100644
+--- a/plugins/platforms/plugin/org.kde.kwin.KWinUtils.xml
++++ b/plugins/platforms/plugin/org.kde.kwin.KWinUtils.xml
+@@ -22,4 +22,10 @@
+ <method name="SuspendCompositor">
+ <arg type="i" name="type" direction="in"/>
+ </method>
++ <method name="TouchPadToMoveWindow">
++ <arg type="i" name="x" direction="in"/>
++ <arg type="i" name="y" direction="in"/>
++ </method>
++ <method name="EndTouchPadToMoveWindow">
++ </method>
+ </interface>
More information about the arch-commits
mailing list