summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wasm/qwasmwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmwindow.cpp')
-rw-r--r--src/plugins/platforms/wasm/qwasmwindow.cpp55
1 files changed, 17 insertions, 38 deletions
diff --git a/src/plugins/platforms/wasm/qwasmwindow.cpp b/src/plugins/platforms/wasm/qwasmwindow.cpp
index 4e429db65fc..4fc9af4b5ce 100644
--- a/src/plugins/platforms/wasm/qwasmwindow.cpp
+++ b/src/plugins/platforms/wasm/qwasmwindow.cpp
@@ -245,45 +245,24 @@ bool QWasmWindow::isPointOnResizeRegion(QPoint point) const
&& resizeRegion().contains(point);
}
-QWasmCompositor::ResizeMode QWasmWindow::resizeModeAtPoint(QPoint point) const
-{
- QPoint p1 = window()->frameGeometry().topLeft() - QPoint(5, 5);
- QPoint p2 = window()->frameGeometry().bottomRight() + QPoint(5, 5);
- int corner = 20;
-
- QRect top(p1, QPoint(p2.x(), p1.y() + corner));
- QRect middle(QPoint(p1.x(), p1.y() + corner), QPoint(p2.x(), p2.y() - corner));
- QRect bottom(QPoint(p1.x(), p2.y() - corner), p2);
-
- QRect left(p1, QPoint(p1.x() + corner, p2.y()));
- QRect center(QPoint(p1.x() + corner, p1.y()), QPoint(p2.x() - corner, p2.y()));
- QRect right(QPoint(p2.x() - corner, p1.y()), p2);
-
- if (top.contains(point)) {
- // Top
- if (left.contains(point))
- return QWasmCompositor::ResizeTopLeft;
- if (center.contains(point))
- return QWasmCompositor::ResizeTop;
- if (right.contains(point))
- return QWasmCompositor::ResizeTopRight;
- } else if (middle.contains(point)) {
- // Middle
- if (left.contains(point))
- return QWasmCompositor::ResizeLeft;
- if (right.contains(point))
- return QWasmCompositor::ResizeRight;
- } else if (bottom.contains(point)) {
- // Bottom
- if (left.contains(point))
- return QWasmCompositor::ResizeBottomLeft;
- if (center.contains(point))
- return QWasmCompositor::ResizeBottom;
- if (right.contains(point))
- return QWasmCompositor::ResizeBottomRight;
- }
+Qt::Edges QWasmWindow::resizeEdgesAtPoint(QPoint point) const
+{
+ const QPoint topLeft = window()->frameGeometry().topLeft() - QPoint(5, 5);
+ const QPoint bottomRight = window()->frameGeometry().bottomRight() + QPoint(5, 5);
+ const int gripAreaWidth = std::min(20, (bottomRight.y() - topLeft.y()) / 2);
+
+ const QRect top(topLeft, QPoint(bottomRight.x(), topLeft.y() + gripAreaWidth));
+ const QRect bottom(QPoint(topLeft.x(), bottomRight.y() - gripAreaWidth), bottomRight);
+ const QRect left(topLeft, QPoint(topLeft.x() + gripAreaWidth, bottomRight.y()));
+ const QRect right(QPoint(bottomRight.x() - gripAreaWidth, topLeft.y()), bottomRight);
+
+ Q_ASSERT(!top.intersects(bottom));
+ Q_ASSERT(!left.intersects(right));
- return QWasmCompositor::ResizeNone;
+ Qt::Edges edges(top.contains(point) ? Qt::Edge::TopEdge : Qt::Edge(0));
+ edges |= bottom.contains(point) ? Qt::Edge::BottomEdge : Qt::Edge(0);
+ edges |= left.contains(point) ? Qt::Edge::LeftEdge : Qt::Edge(0);
+ return edges | (right.contains(point) ? Qt::Edge::RightEdge : Qt::Edge(0));
}
QRect getSubControlRect(const QWasmWindow *window, QWasmCompositor::SubControls subControl)