MDI: Fix another case of showing resize handles wrong

the logic for 'y' only makes sense if 'x' is bounded and vice-versa
This commit is contained in:
Sergio Martins
2022-03-10 10:55:17 +00:00
parent e345e89c35
commit 25b04d7ed8

View File

@@ -520,15 +520,20 @@ CursorPosition WidgetResizeHandler::cursorPosition(QPoint globalPos) const
const int margin = widgetResizeHandlerMargin();
QFlags<CursorPosition>::Int result = CursorPosition_Undefined;
if (qAbs(x) <= margin)
result |= CursorPosition_Left;
else if (qAbs(x - (mTarget->width() - margin)) <= margin)
result |= CursorPosition_Right;
if (qAbs(y) <= margin)
result |= CursorPosition_Top;
else if (qAbs(y - (mTarget->height() - margin)) <= margin)
result |= CursorPosition_Bottom;
if (y >= -margin && y <= mTarget->height() + margin) {
if (qAbs(x) <= margin)
result |= CursorPosition_Left;
else if (qAbs(x - (mTarget->width() - margin)) <= margin)
result |= CursorPosition_Right;
}
if (x >= -margin && x <= mTarget->width() + margin) {
if (qAbs(y) <= margin)
result |= CursorPosition_Top;
else if (qAbs(y - (mTarget->height() - margin)) <= margin)
result |= CursorPosition_Bottom;
}
// Filter out sides we don't allow
result = result & mAllowedResizeSides;