Send mouse release event after startSystemMove/startSystemResize

This commit is contained in:
Ilya Fedin 2023-06-01 05:46:23 +04:00 committed by John Preston
parent 6c216e437d
commit 784dedac4d
3 changed files with 16 additions and 0 deletions

View file

@ -266,6 +266,10 @@ void BasicWindowHelper::setupBodyTitleAreaEvents() {
#endif // Q_OS_WIN
_mousePressed = false;
_window->windowHandle()->startSystemMove();
SendSynteticMouseEvent(
body().get(),
QEvent::MouseButtonRelease,
Qt::LeftButton);
}
}
}, body()->lifetime());
@ -363,6 +367,10 @@ void DefaultWindowHelper::init() {
if (mouseEvent->button() == Qt::LeftButton && edges) {
window()->windowHandle()->startSystemResize(edges);
SendSynteticMouseEvent(
window().get(),
QEvent::MouseButtonRelease,
Qt::LeftButton);
}
} else if (e->type() == QEvent::WindowStateChange) {
_windowState = window()->windowState();

View file

@ -501,6 +501,10 @@ void DefaultTitleWidget::mouseReleaseEvent(QMouseEvent *e) {
void DefaultTitleWidget::mouseMoveEvent(QMouseEvent *e) {
if (_mousePressed) {
window()->windowHandle()->startSystemMove();
SendSynteticMouseEvent(
this,
QEvent::MouseButtonRelease,
Qt::LeftButton);
}
}

View file

@ -768,6 +768,10 @@ void SeparatePanel::mousePressEvent(QMouseEvent *e) {
if (dragArea.contains(e->pos())) {
const auto dragViaSystem = [&] {
if (windowHandle()->startSystemMove()) {
SendSynteticMouseEvent(
this,
QEvent::MouseButtonRelease,
Qt::LeftButton);
return true;
}
return false;