on xenial help sign in
Cursor plugin: add scroll wheel handling
83cfb65Daniel d'Andrada
CMakeLists.txt+1−1
@@ -57,7 +57,7 @@ find_package(Qt5DBus 5.4 REQUIRED)
57find_package(Qt5Concurrent 5.4 REQUIRED)
57find_package(Qt5Concurrent 5.4 REQUIRED)
58find_package(Qt5Sql 5.4 REQUIRED)
58find_package(Qt5Sql 5.4 REQUIRED)
59
59
60−pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=10)
60+pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=11)
61
61
62# Standard install paths
62# Standard install paths
63include(GNUInstallDirs)
63include(GNUInstallDirs)
debian/control+3−3
@@ -29,7 +29,7 @@ Build-Depends: cmake,
29 libqt5xmlpatterns5-dev,
29 libqt5xmlpatterns5-dev,
30 libsystemsettings-dev,
30 libsystemsettings-dev,
31 libudev-dev,
31 libudev-dev,
32− libunity-api-dev (>= 7.102),
32+ libunity-api-dev (>= 7.103),
33 libusermetricsoutput1-dev,
33 libusermetricsoutput1-dev,
34 libxcb1-dev,
34 libxcb1-dev,
35 pkg-config,
35 pkg-config,
@@ -128,7 +128,7 @@ Depends: qml-module-qtquick-layouts,
128 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1627) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1627),
128 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1627) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1627),
129 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
129 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
130 ubuntu-thumbnailer-impl-0,
130 ubuntu-thumbnailer-impl-0,
131− unity-application-impl-10,
131+ unity-application-impl-11,
132 unity-notifications-impl-3,
132 unity-notifications-impl-3,
133 unity-plugin-scopes | unity-scopes-impl,
133 unity-plugin-scopes | unity-scopes-impl,
134 unity-scopes-impl-7,
134 unity-scopes-impl-7,
@@ -174,7 +174,7 @@ Pre-Depends: ${misc:Pre-Depends},
174Depends: ${misc:Depends},
174Depends: ${misc:Depends},
175 ${shlibs:Depends},
175 ${shlibs:Depends},
176Provides: unity-application-impl,
176Provides: unity-application-impl,
177− unity-application-impl-10,
177+ unity-application-impl-11,
178Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1)
178Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1)
179Description: Fake environment for running Unity 8 shell
179Description: Fake environment for running Unity 8 shell
180 Provides fake implementations of some QML modules used by Unity 8 shell
180 Provides fake implementations of some QML modules used by Unity 8 shell
plugins/Cursor/MousePointer.cpp+11
@@ -62,6 +62,17 @@ void MousePointer::handleMouseEvent(ulong timestamp, QPointF movement, Qt::Mouse
62 buttons, modifiers);
62 buttons, modifiers);
63}
63}
64
64
65+void MousePointer::handleWheelEvent(ulong timestamp, QPoint angleDelta, Qt::KeyboardModifiers modifiers)
66+{
67+ if (!parentItem()) {
68+ return;
69+ }
70+
71+ QPointF scenePosition = mapToItem(nullptr, QPointF(0, 0));
72+ QWindowSystemInterface::handleWheelEvent(window(), timestamp, scenePosition /* local */, scenePosition /* global */,
73+ QPoint() /* pixelDelta */, angleDelta, modifiers, Qt::ScrollUpdate);
74+}
75+
65void MousePointer::itemChange(ItemChange change, const ItemChangeData &value)
76void MousePointer::itemChange(ItemChange change, const ItemChangeData &value)
66{
77{
67 if (change == ItemSceneChange) {
78 if (change == ItemSceneChange) {
plugins/Cursor/MousePointer.h+1
@@ -41,6 +41,7 @@ public:
41public Q_SLOTS:
41public Q_SLOTS:
42 void handleMouseEvent(ulong timestamp, QPointF movement, Qt::MouseButtons buttons,
42 void handleMouseEvent(ulong timestamp, QPointF movement, Qt::MouseButtons buttons,
43 Qt::KeyboardModifiers modifiers) override;
43 Qt::KeyboardModifiers modifiers) override;
44+ void handleWheelEvent(ulong timestamp, QPoint angleDelta, Qt::KeyboardModifiers modifiers) override;
44
45
45protected:
46protected:
46 void itemChange(ItemChange change, const ItemChangeData &value) override;
47 void itemChange(ItemChange change, const ItemChangeData &value) override;