Correct the detection of Windows-generated mouse events
Check only bit 8 to decide if the mouse event is generated from a touch or pen event. Task-number: QTBUG-33460 Change-Id: I83b23267b5de6df5e0e6b7113ecf377dd7e86c84 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>bb10
parent
9bf820ce47
commit
279db88c39
|
|
@ -168,11 +168,13 @@ bool QWindowsMouseHandler::translateMouseEvent(QWindow *window, HWND hwnd,
|
|||
return translateMouseWheelEvent(window, hwnd, msg, result);
|
||||
|
||||
#ifndef Q_OS_WINCE
|
||||
// Check for events synthesized from touch. Lower byte is touch index, 0 means pen.
|
||||
static const bool passSynthesizedMouseEvents = QWindowsIntegration::instance()->options() & QWindowsIntegration::PassOsMouseEventsSynthesizedFromTouch;
|
||||
if (!passSynthesizedMouseEvents) {
|
||||
// Check for events synthesized from touch. Lower 7 bits are touch/pen index, bit 8 indicates touch.
|
||||
// However, when tablet support is active, extraInfo is a packet serial number. This is not a problem
|
||||
// since we do not want to ignore mouse events coming from a tablet.
|
||||
const quint64 extraInfo = GetMessageExtraInfo();
|
||||
const bool fromTouch = (extraInfo & signatureMask) == miWpSignature && (extraInfo & 0xff);
|
||||
const bool fromTouch = (extraInfo & signatureMask) == miWpSignature && (extraInfo & 0x80);
|
||||
if (fromTouch)
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue