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

View file

@ -501,6 +501,10 @@ void DefaultTitleWidget::mouseReleaseEvent(QMouseEvent *e) {
void DefaultTitleWidget::mouseMoveEvent(QMouseEvent *e) { void DefaultTitleWidget::mouseMoveEvent(QMouseEvent *e) {
if (_mousePressed) { if (_mousePressed) {
window()->windowHandle()->startSystemMove(); 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())) { if (dragArea.contains(e->pos())) {
const auto dragViaSystem = [&] { const auto dragViaSystem = [&] {
if (windowHandle()->startSystemMove()) { if (windowHandle()->startSystemMove()) {
SendSynteticMouseEvent(
this,
QEvent::MouseButtonRelease,
Qt::LeftButton);
return true; return true;
} }
return false; return false;