fix mouse behavior on resize handler region
This commit is contained in:
parent
fdf38d4c80
commit
18912d5710
|
@ -535,6 +535,11 @@ bool FramelessHelper::eventFilter(QObject *object, QEvent *event)
|
||||||
auto ev = static_cast<QMouseEvent *>(event);
|
auto ev = static_cast<QMouseEvent *>(event);
|
||||||
updateMouse(ev->pos());
|
updateMouse(ev->pos());
|
||||||
|
|
||||||
|
// Resize handler have highest priority, so we do not
|
||||||
|
// send event to Qt. It works like non-client region.
|
||||||
|
if (isHoverResizeHandler())
|
||||||
|
filterOut = true;
|
||||||
|
|
||||||
if (m_clickedFrameSection == Qt::TitleBarArea
|
if (m_clickedFrameSection == Qt::TitleBarArea
|
||||||
&& isInTitlebarArea(ev->pos())) {
|
&& isInTitlebarArea(ev->pos())) {
|
||||||
// Start system move
|
// Start system move
|
||||||
|
@ -568,6 +573,10 @@ bool FramelessHelper::eventFilter(QObject *object, QEvent *event)
|
||||||
if (ev->button() == Qt::LeftButton)
|
if (ev->button() == Qt::LeftButton)
|
||||||
m_clickedFrameSection = m_hoveredFrameSection;
|
m_clickedFrameSection = m_hoveredFrameSection;
|
||||||
|
|
||||||
|
// Prevents buttons on the edge from being clicked
|
||||||
|
if (isHoverResizeHandler())
|
||||||
|
filterOut = true;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -585,12 +594,15 @@ bool FramelessHelper::eventFilter(QObject *object, QEvent *event)
|
||||||
if (isHoverResizeHandler() && ev->button() == Qt::LeftButton) {
|
if (isHoverResizeHandler() && ev->button() == Qt::LeftButton) {
|
||||||
// double click resize handler
|
// double click resize handler
|
||||||
handleResizeHandlerDblClicked();
|
handleResizeHandlerDblClicked();
|
||||||
|
filterOut = true;
|
||||||
} else if (isInTitlebarArea(ev->pos()) && ev->button() == Qt::LeftButton) {
|
} else if (isInTitlebarArea(ev->pos()) && ev->button() == Qt::LeftButton) {
|
||||||
Qt::WindowStates states = m_window->windowState();
|
Qt::WindowStates states = m_window->windowState();
|
||||||
if (states & Qt::WindowMaximized)
|
if (states & Qt::WindowMaximized)
|
||||||
m_window->showNormal();
|
m_window->showNormal();
|
||||||
else
|
else
|
||||||
m_window->showMaximized();
|
m_window->showMaximized();
|
||||||
|
|
||||||
|
filterOut = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue