summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wayland_common/qwaylanddecoration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/wayland_common/qwaylanddecoration.cpp')
-rw-r--r--src/plugins/platforms/wayland_common/qwaylanddecoration.cpp37
1 files changed, 15 insertions, 22 deletions
diff --git a/src/plugins/platforms/wayland_common/qwaylanddecoration.cpp b/src/plugins/platforms/wayland_common/qwaylanddecoration.cpp
index f5f79ae67..a4b978330 100644
--- a/src/plugins/platforms/wayland_common/qwaylanddecoration.cpp
+++ b/src/plugins/platforms/wayland_common/qwaylanddecoration.cpp
@@ -44,6 +44,7 @@
#include "qwaylandwindow.h"
#include "qwaylandshellsurface.h"
#include "qwaylandinputdevice.h"
+#include "qwaylandscreen.h"
#include <QtGui/QGuiApplication>
#include <QtGui/QImage>
@@ -52,7 +53,7 @@
#include <QtGui/QPalette>
#include <QtGui/QLinearGradient>
-QT_USE_NAMESPACE
+QT_BEGIN_NAMESPACE
#define BUTTON_SPACING 5
@@ -128,7 +129,6 @@ QWaylandDecoration::QWaylandDecoration(QWaylandWindow *window)
, m_isDirty(true)
, m_decorationContentImage(0)
, m_margins(3,30,3,3)
- , m_hasSetCursor(false)
, m_mouseButtons(Qt::NoButton)
{
m_wayland_window->setDecoration(this);
@@ -312,7 +312,7 @@ bool QWaylandDecoration::handleMouse(QWaylandInputDevice *inputDevice, const QPo
// Figure out what area mouse is in
if (closeButtonRect().contains(local) && isLeftClicked(b)) {
- QCoreApplication::postEvent(m_window, new QCloseEvent());
+ QWindowSystemInterface::handleCloseEvent(m_window);
} else if (maximizeButtonRect().contains(local) && isLeftClicked(b)) {
m_window->setWindowState(m_wayland_window->isMaximized() ? Qt::WindowNoState : Qt::WindowMaximized);
} else if (minimizeButtonRect().contains(local) && isLeftClicked(b)) {
@@ -326,7 +326,7 @@ bool QWaylandDecoration::handleMouse(QWaylandInputDevice *inputDevice, const QPo
} else if (local.x() > m_window->width() - m_margins.right() + m_margins.left()) {
processMouseRight(inputDevice,local,b,mods);
} else {
- restoreMouseCursor();
+ m_wayland_window->restoreMouseCursor(inputDevice);
return false;
}
@@ -334,15 +334,6 @@ bool QWaylandDecoration::handleMouse(QWaylandInputDevice *inputDevice, const QPo
return true;
}
-void QWaylandDecoration::restoreMouseCursor()
-{
- if (m_hasSetCursor) {
- overrideCursor(Qt::ArrowCursor);
- QGuiApplication::restoreOverrideCursor();
- m_hasSetCursor = false;
- }
-}
-
bool QWaylandDecoration::inMouseButtonPressedState() const
{
return m_mouseButtons & Qt::NoButton;
@@ -370,19 +361,19 @@ void QWaylandDecoration::processMouseTop(QWaylandInputDevice *inputDevice, const
if (local.y() <= m_margins.bottom()) {
if (local.x() <= margins().left()) {
//top left bit
- overrideCursor(Qt::SizeFDiagCursor);
+ m_wayland_window->setMouseCursor(inputDevice, Qt::SizeFDiagCursor);
startResize(inputDevice,WL_SHELL_SURFACE_RESIZE_TOP_LEFT,b);
} else if (local.x() > m_window->width() - margins().right()) {
//top right bit
- overrideCursor(Qt::SizeBDiagCursor);
+ m_wayland_window->setMouseCursor(inputDevice, Qt::SizeBDiagCursor);
startResize(inputDevice,WL_SHELL_SURFACE_RESIZE_TOP_RIGHT,b);
} else {
//top reszie bit
- overrideCursor(Qt::SplitVCursor);
+ m_wayland_window->setMouseCursor(inputDevice, Qt::SplitVCursor);
startResize(inputDevice,WL_SHELL_SURFACE_RESIZE_TOP,b);
}
} else {
- restoreMouseCursor();
+ m_wayland_window->restoreMouseCursor(inputDevice);
startMove(inputDevice,b);
}
@@ -393,15 +384,15 @@ void QWaylandDecoration::processMouseBottom(QWaylandInputDevice *inputDevice, co
Q_UNUSED(mods);
if (local.x() <= margins().left()) {
//bottom left bit
- overrideCursor(Qt::SizeBDiagCursor);
+ m_wayland_window->setMouseCursor(inputDevice, Qt::SizeBDiagCursor);
startResize(inputDevice, WL_SHELL_SURFACE_RESIZE_BOTTOM_LEFT,b);
} else if (local.x() > m_window->width() - margins().right()) {
//bottom right bit
- overrideCursor(Qt::SizeFDiagCursor);
+ m_wayland_window->setMouseCursor(inputDevice, Qt::SizeFDiagCursor);
startResize(inputDevice, WL_SHELL_SURFACE_RESIZE_BOTTOM_RIGHT,b);
} else {
//bottom bit
- overrideCursor(Qt::SplitVCursor);
+ m_wayland_window->setMouseCursor(inputDevice, Qt::SplitVCursor);
startResize(inputDevice,WL_SHELL_SURFACE_RESIZE_BOTTOM,b);
}
}
@@ -410,7 +401,7 @@ void QWaylandDecoration::processMouseLeft(QWaylandInputDevice *inputDevice, cons
{
Q_UNUSED(local);
Q_UNUSED(mods);
- overrideCursor(Qt::SplitHCursor);
+ m_wayland_window->setMouseCursor(inputDevice, Qt::SplitHCursor);
startResize(inputDevice,WL_SHELL_SURFACE_RESIZE_LEFT,b);
}
@@ -418,7 +409,7 @@ void QWaylandDecoration::processMouseRight(QWaylandInputDevice *inputDevice, con
{
Q_UNUSED(local);
Q_UNUSED(mods);
- overrideCursor(Qt::SplitHCursor);
+ m_wayland_window->setMouseCursor(inputDevice, Qt::SplitHCursor);
startResize(inputDevice, WL_SHELL_SURFACE_RESIZE_RIGHT,b);
}
@@ -463,3 +454,5 @@ void QWaylandDecoration::setBackgroundColor(const QColor &c)
{
m_backgroundColor = c;
}
+
+QT_END_NAMESPACE