diff --git a/app/mainwindow.cpp b/app/mainwindow.cpp index 14a6c1e..c96e783 100644 --- a/app/mainwindow.cpp +++ b/app/mainwindow.cpp @@ -353,16 +353,14 @@ void MainWindow::leaveEvent(QEvent *event) void MainWindow::mousePressEvent(QMouseEvent *event) { - bool optionalMaximized = false; - #if defined(Q_OS_WIN) - optionalMaximized = isMaximized(); - #endif +#if defined(Q_OS_WIN) + const bool shouldAcceptDrag = !isMaximized() && !isFullScreen(); +#else + const bool shouldAcceptDrag = !isFullScreen(); +#endif - if (event->buttons() & Qt::LeftButton && !optionalMaximized && !isFullScreen()) { + if (event->buttons() & Qt::LeftButton && shouldAcceptDrag) { m_clickedOnWindow = true; - m_oldMousePos = event->pos(); -// qDebug() << m_oldMousePos << m_graphicsView->transform().m11() -// << m_graphicsView->transform().m22() << m_graphicsView->matrix().m12(); event->accept(); } @@ -372,8 +370,8 @@ void MainWindow::mousePressEvent(QMouseEvent *event) void MainWindow::mouseMoveEvent(QMouseEvent *event) { if (event->buttons() & Qt::LeftButton && m_clickedOnWindow) { - if (!window()->windowHandle()->startSystemMove()) { - move(event->globalPosition().toPoint() - m_oldMousePos); + if (window()->windowHandle()->startSystemMove()) { + m_clickedOnWindow = false; } event->accept(); } diff --git a/app/mainwindow.h b/app/mainwindow.h index ac5c4fd..b33bd90 100644 --- a/app/mainwindow.h +++ b/app/mainwindow.h @@ -119,7 +119,6 @@ private: ActionManager *m_am; PlaylistManager *m_pm; - QPoint m_oldMousePos; QPropertyAnimation *m_fadeOutAnimation; QPropertyAnimation *m_floatUpAnimation; QParallelAnimationGroup *m_exitAnimationGroup; diff --git a/app/titlebar.cpp b/app/titlebar.cpp index c5f538d..d74799d 100644 --- a/app/titlebar.cpp +++ b/app/titlebar.cpp @@ -115,7 +115,6 @@ void TitleBar::mousePressEvent(QMouseEvent *event) } m_dragPending = true; - m_moveStartPos = event->pos(); event->accept(); } @@ -129,17 +128,18 @@ void TitleBar::mouseMoveEvent(QMouseEvent *event) } } - bool optionalMaximized = false; - #if defined(Q_OS_WIN) - optionalMaximized = isMaximized(); - #endif +#if defined(Q_OS_WIN) + const bool shouldAcceptDrag = !window()->isMaximized() && !window()->isFullScreen(); +#else + const bool shouldAcceptDrag = !window()->isFullScreen(); +#endif + + if (event->buttons() & Qt::LeftButton && m_dragPending && shouldAcceptDrag) { - if (event->buttons() & Qt::LeftButton && m_dragPending - && !window()->isFullScreen() && !optionalMaximized) { - if (QWindow *wh = window()->windowHandle()) { - if (!wh->startSystemMove()) - window()->move(event->globalPosition().toPoint() - m_moveStartPos); + if (wh->startSystemMove()) { + m_dragPending = false; + } } event->accept(); } diff --git a/app/titlebar.h b/app/titlebar.h index e311473..c1b7161 100644 --- a/app/titlebar.h +++ b/app/titlebar.h @@ -54,7 +54,6 @@ private: bool m_closeHovered = false; bool m_closePressed = false; bool m_dragPending = false; - QPoint m_moveStartPos; }; #endif // TITLEBAR_H