summaryrefslogtreecommitdiffstats
path: root/src/client/qwaylanddecoration.cpp
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@digia.com>2014-09-06 21:44:18 +0200
committerLaszlo Agocs <laszlo.agocs@digia.com>2014-09-06 22:27:05 +0200
commit3f32b38aed1506723b6c634f6e9f079192c13089 (patch)
tree54f6b657d183a23199bc07ce35d2e7ff6c930655 /src/client/qwaylanddecoration.cpp
parent6d43b06d2b8f101f72d798d10e692fa134963849 (diff)
Allow activating decoration buttons with touchv5.4.0-alpha1
Task-number: QTBUG-41142 Change-Id: Ifad600d375d3b5ba197c384ece54a93db9aa0d2d Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Diffstat (limited to 'src/client/qwaylanddecoration.cpp')
-rw-r--r--src/client/qwaylanddecoration.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/client/qwaylanddecoration.cpp b/src/client/qwaylanddecoration.cpp
index c9ab23c00..ed4978725 100644
--- a/src/client/qwaylanddecoration.cpp
+++ b/src/client/qwaylanddecoration.cpp
@@ -340,12 +340,21 @@ bool QWaylandDecoration::handleTouch(QWaylandInputDevice *inputDevice, const QPo
Q_UNUSED(inputDevice);
Q_UNUSED(global);
Q_UNUSED(mods);
-
- if (state == Qt::TouchPointPressed && local.y() <= m_margins.top()) {
- m_wayland_window->shellSurface()->move(inputDevice);
- return true;
+ bool handled = state == Qt::TouchPointPressed;
+ if (handled) {
+ if (closeButtonRect().contains(local))
+ QWindowSystemInterface::handleCloseEvent(m_window);
+ else if (maximizeButtonRect().contains(local))
+ m_window->setWindowState(m_wayland_window->isMaximized() ? Qt::WindowNoState : Qt::WindowMaximized);
+ else if (minimizeButtonRect().contains(local))
+ m_window->setWindowState(Qt::WindowMinimized);
+ else if (local.y() <= m_margins.top())
+ m_wayland_window->shellSurface()->move(inputDevice);
+ else
+ handled = false;
}
- return false;
+
+ return handled;
}
bool QWaylandDecoration::inMouseButtonPressedState() const