diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2011-10-07 14:54:17 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-10-07 18:27:53 +0200 |
commit | 090d825e1d853a2ed875329a8350b0a727c3527e (patch) | |
tree | 0c6f43b77bd93363c8bf1dd25ac0690b46b7f880 /src/gui/kernel/qwindowsysteminterface_qpa_p.h | |
parent | b26442f48520a1e04bcb259e3694b3ee3471e124 (diff) |
Fix QMouse/Wheel/TouchEvent::modifiers with the XCB back-end
The modifiers are provided by X and need to be propagated through the
QWindowSystemInterface.
Change-Id: I127d0b6e9918b558ca15d9302c4cc0cbd94eb757
Reviewed-on: http://codereview.qt-project.org/6244
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Sanity-Review: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Diffstat (limited to 'src/gui/kernel/qwindowsysteminterface_qpa_p.h')
-rw-r--r-- | src/gui/kernel/qwindowsysteminterface_qpa_p.h | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/src/gui/kernel/qwindowsysteminterface_qpa_p.h b/src/gui/kernel/qwindowsysteminterface_qpa_p.h index 77c219737d..121c997e8a 100644 --- a/src/gui/kernel/qwindowsysteminterface_qpa_p.h +++ b/src/gui/kernel/qwindowsysteminterface_qpa_p.h @@ -134,52 +134,60 @@ public: unsigned long timestamp; }; - class MouseEvent : public UserEvent { + class InputEvent: public UserEvent { public: - MouseEvent(QWindow * w, ulong time, const QPointF & local, const QPointF & global, Qt::MouseButtons b) - : UserEvent(w, time, Mouse), localPos(local), globalPos(global), buttons(b) { } + InputEvent(QWindow * w, ulong time, EventType t, Qt::KeyboardModifiers mods) + : UserEvent(w, time, t), modifiers(mods) {} + Qt::KeyboardModifiers modifiers; + }; + + class MouseEvent : public InputEvent { + public: + MouseEvent(QWindow * w, ulong time, const QPointF & local, const QPointF & global, + Qt::MouseButtons b, Qt::KeyboardModifiers mods) + : InputEvent(w, time, Mouse, mods), localPos(local), globalPos(global), buttons(b) { } QPointF localPos; QPointF globalPos; Qt::MouseButtons buttons; }; - class WheelEvent : public UserEvent { + class WheelEvent : public InputEvent { public: - WheelEvent(QWindow *w, ulong time, const QPointF & local, const QPointF & global, int d, Qt::Orientation o) - : UserEvent(w, time, Wheel), delta(d), localPos(local), globalPos(global), orient(o) { } + WheelEvent(QWindow *w, ulong time, const QPointF & local, const QPointF & global, int d, + Qt::Orientation o, Qt::KeyboardModifiers mods) + : InputEvent(w, time, Wheel, mods), delta(d), localPos(local), globalPos(global), orient(o) { } int delta; QPointF localPos; QPointF globalPos; Qt::Orientation orient; }; - class KeyEvent : public UserEvent { + class KeyEvent : public InputEvent { public: KeyEvent(QWindow *w, ulong time, QEvent::Type t, int k, Qt::KeyboardModifiers mods, const QString & text = QString(), bool autorep = false, ushort count = 1) - :UserEvent(w, time, Key), key(k), unicode(text), repeat(autorep), - repeatCount(count), modifiers(mods), keyType(t), + :InputEvent(w, time, Key, mods), key(k), unicode(text), repeat(autorep), + repeatCount(count), keyType(t), nativeScanCode(0), nativeVirtualKey(0), nativeModifiers(0) { } KeyEvent(QWindow *w, ulong time, QEvent::Type t, int k, Qt::KeyboardModifiers mods, quint32 nativeSC, quint32 nativeVK, quint32 nativeMods, const QString & text = QString(), bool autorep = false, ushort count = 1) - :UserEvent(w, time, Key), key(k), unicode(text), repeat(autorep), - repeatCount(count), modifiers(mods), keyType(t), + :InputEvent(w, time, Key, mods), key(k), unicode(text), repeat(autorep), + repeatCount(count), keyType(t), nativeScanCode(nativeSC), nativeVirtualKey(nativeVK), nativeModifiers(nativeMods) { } int key; QString unicode; bool repeat; ushort repeatCount; - Qt::KeyboardModifiers modifiers; QEvent::Type keyType; quint32 nativeScanCode; quint32 nativeVirtualKey; quint32 nativeModifiers; }; - class TouchEvent : public UserEvent { + class TouchEvent : public InputEvent { public: - TouchEvent(QWindow *w, ulong time, QEvent::Type t, QTouchEvent::DeviceType d, const QList<QTouchEvent::TouchPoint> &p) - :UserEvent(w, time, Touch), devType(d), points(p), touchType(t) { } + TouchEvent(QWindow *w, ulong time, QEvent::Type t, QTouchEvent::DeviceType d, const QList<QTouchEvent::TouchPoint> &p, Qt::KeyboardModifiers mods) + :InputEvent(w, time, Touch, mods), devType(d), points(p), touchType(t) { } QTouchEvent::DeviceType devType; QList<QTouchEvent::TouchPoint> points; QEvent::Type touchType; |