Windows: Fixed mouse events related to size grips
The code which was adapted from Qt4 seems not to work as expected on current Windows versions. There are no additional mouse move events after releasing the mouse button from the size grip. One special behaviour in regards to SizeGrips here seems to be that there is no WM_LBUTTONUP message but a WM_MOUSEMOVE received when the mouse button is released from the size grip. Due to mouse event handling in the Windows plugin that event triggers the desired mouse release event so everything should be fine. With the previous implementation the behaviour from the bug report can be explained by the fact, that the mouseMove event is eaten in qwindowsmousehandler and so the second mouse click isn't even delivered. Basically the first click triggers the press event without a release and the second click does not trigger a press but a release event. Task-number: QTBUG-27864 Change-Id: I987c6e01dec4a6b6189ed30959daf7a2fcc17df6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
This commit is contained in:
parent
45fecb2472
commit
46fe591a53
@ -245,15 +245,6 @@ bool QWindowsMouseHandler::translateMouseEvent(QWindow *window, HWND hwnd,
|
||||
if (QWindowsContext::verboseEvents)
|
||||
qDebug() << "Releasing automatic mouse capture " << window;
|
||||
}
|
||||
// Eat mouse move after size grip drag.
|
||||
if (msg.message == WM_MOUSEMOVE) {
|
||||
if (platformWindow->testFlag(QWindowsWindow::SizeGripOperation)) {
|
||||
MSG mouseMsg;
|
||||
while (PeekMessage(&mouseMsg, platformWindow->handle(), WM_MOUSEMOVE, WM_MOUSEMOVE, PM_REMOVE)) ;
|
||||
platformWindow->clearFlag(QWindowsWindow::SizeGripOperation);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
const bool hasCapture = platformWindow->hasMouseCapture();
|
||||
const bool currentNotCapturing = hasCapture && currentWindowUnderMouse != window;
|
||||
|
Loading…
Reference in New Issue
Block a user