summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmscursor.h
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2016-05-12 11:17:22 +0200
committerOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2016-05-12 11:17:23 +0200
commitadf85c09b46eaf55dab362e17e3b0828fb509750 (patch)
treec079b2125611711a3dcd946894ad587af33e14d0 /src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmscursor.h
parent5dc421ec87eca15a72c82203319a9be7655cd56a (diff)
parent6bcd27b957a5ffcfe7665b0979679510e3b2ae3d (diff)
Merge 5.6 into 5.6.1
Diffstat (limited to 'src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmscursor.h')
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmscursor.h30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmscursor.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmscursor.h
index 68bc72a03f..f26df91be5 100644
--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmscursor.h
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmscursor.h
@@ -37,12 +37,29 @@
#include <qpa/qplatformcursor.h>
#include <QtCore/QList>
#include <QtGui/QImage>
+#include <QtGui/private/qinputdevicemanager_p.h>
#include <gbm.h>
QT_BEGIN_NAMESPACE
class QEglFSKmsScreen;
+class QEglFSKmsCursor;
+
+class QEglFSKmsCursorDeviceListener : public QObject
+{
+ Q_OBJECT
+
+public:
+ QEglFSKmsCursorDeviceListener(QEglFSKmsCursor *cursor) : m_cursor(cursor) { }
+ bool hasMouse() const;
+
+public slots:
+ void onDeviceListChanged(QInputDeviceManager::DeviceType type);
+
+private:
+ QEglFSKmsCursor *m_cursor;
+};
class QEglFSKmsCursor : public QPlatformCursor
{
@@ -60,15 +77,26 @@ public:
QPoint pos() const Q_DECL_OVERRIDE;
void setPos(const QPoint &pos) Q_DECL_OVERRIDE;
+ void updateMouseStatus();
+
private:
void initCursorAtlas();
+ enum CursorState {
+ CursorDisabled,
+ CursorPendingHidden,
+ CursorHidden,
+ CursorPendingVisible,
+ CursorVisible
+ };
+
QEglFSKmsScreen *m_screen;
QSize m_cursorSize;
gbm_bo *m_bo;
QPoint m_pos;
QPlatformCursorImage m_cursorImage;
- bool m_visible;
+ CursorState m_state;
+ QEglFSKmsCursorDeviceListener *m_deviceListener;
// cursor atlas information
struct CursorAtlas {