QWindowsCursor: Add API for determining the cursor state.
Detect the 'suppressed' state new in Windows 8. Change-Id: I0faa994aa7b91869cedba36b777b1784818efcce Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This commit is contained in:
parent
245e630cfd
commit
97bc287782
@ -465,6 +465,22 @@ QPoint QWindowsCursor::mousePosition()
|
||||
return QPoint(p.x, p.y);
|
||||
}
|
||||
|
||||
QWindowsCursor::CursorState QWindowsCursor::cursorState()
|
||||
{
|
||||
#ifndef Q_OS_WINCE
|
||||
enum { cursorShowing = 0x1, cursorSuppressed = 0x2 }; // Windows 8: CURSOR_SUPPRESSED
|
||||
CURSORINFO cursorInfo;
|
||||
cursorInfo.cbSize = sizeof(CURSORINFO);
|
||||
if (GetCursorInfo(&cursorInfo)) {
|
||||
if (cursorInfo.flags & CursorShowing)
|
||||
return CursorShowing;
|
||||
if (cursorInfo.flags & cursorSuppressed)
|
||||
return CursorSuppressed;
|
||||
}
|
||||
#endif // !Q_OS_WINCE
|
||||
return CursorHidden;
|
||||
}
|
||||
|
||||
void QWindowsCursor::setPos(const QPoint &pos)
|
||||
{
|
||||
SetCursorPos(pos.x(), pos.y());
|
||||
|
@ -93,6 +93,12 @@ private:
|
||||
class QWindowsCursor : public QPlatformCursor
|
||||
{
|
||||
public:
|
||||
enum CursorState {
|
||||
CursorShowing,
|
||||
CursorHidden,
|
||||
CursorSuppressed // Cursor suppressed by touch interaction (Windows 8).
|
||||
};
|
||||
|
||||
QWindowsCursor() {}
|
||||
|
||||
virtual void changeCursor(QCursor * widgetCursor, QWindow * widget);
|
||||
@ -102,6 +108,7 @@ public:
|
||||
static HCURSOR createPixmapCursor(const QPixmap &pixmap, int hotX, int hotY);
|
||||
static HCURSOR createSystemCursor(const QCursor &c);
|
||||
static QPoint mousePosition();
|
||||
static CursorState cursorState();
|
||||
|
||||
QWindowsWindowCursor standardWindowCursor(Qt::CursorShape s = Qt::ArrowCursor);
|
||||
QWindowsWindowCursor pixmapWindowCursor(const QCursor &c);
|
||||
|
Loading…
Reference in New Issue
Block a user