diff --git a/src/kddockwidgets_qtquick.qrc b/src/kddockwidgets_qtquick.qrc
index 8266222a..4329c2d9 100644
--- a/src/kddockwidgets_qtquick.qrc
+++ b/src/kddockwidgets_qtquick.qrc
@@ -5,6 +5,7 @@
private/quick/qml/FloatingWindow.qml
private/quick/qml/Frame.qml
private/quick/qml/MainWindowMDI.qml
+ private/quick/qml/ResizeHandlerHelper.qml
private/quick/qml/RubberBand.qml
private/quick/qml/TitleBarBase.qml
private/quick/qml/TitleBar.qml
diff --git a/src/private/quick/qml/Frame.qml b/src/private/quick/qml/Frame.qml
index ccaf6f3b..b5487a79 100644
--- a/src/private/quick/qml/Frame.qml
+++ b/src/private/quick/qml/Frame.qml
@@ -49,139 +49,91 @@ Rectangle {
frameCpp.geometryUpdated();
}
- MouseArea {
+ ResizeHandlerHelper {
anchors {
left: parent.left
top: parent.top
bottom: parent.bottom
}
- hoverEnabled: true
- width: root.mouseResizeMargin
- cursorShape: enabled ? Qt.SizeHorCursor : Qt.ArrowCursor // Even if disabled the MouseArea changes cursor, as it's different than Item.enabled, so explicitly change cursor if disabled
+ shape: Qt.SizeHorCursor
z: mouseArea.z + 1
- enabled: root.resizeAllowed
- onPressed: { mouse.accepted = false; }
- onReleased: { mouse.accepted = false; }
}
- MouseArea {
+ ResizeHandlerHelper {
anchors {
right: parent.right
top: parent.top
bottom: parent.bottom
}
- hoverEnabled: true
- width: root.mouseResizeMargin
- cursorShape: enabled ? Qt.SizeHorCursor : Qt.ArrowCursor
+ shape: Qt.SizeHorCursor
z: mouseArea.z + 1
- enabled: root.resizeAllowed
- onPressed: { mouse.accepted = false; }
- onReleased: { mouse.accepted = false; }
}
- MouseArea {
+
+ ResizeHandlerHelper {
anchors {
right: parent.right
top: parent.top
left: parent.left
}
- hoverEnabled: true
- height: root.mouseResizeMargin
- cursorShape: enabled ? Qt.SizeVerCursor : Qt.ArrowCursor
+ shape: Qt.SizeVerCursor
z: mouseArea.z + 1
- enabled: root.resizeAllowed
- onPressed: { mouse.accepted = false; }
- onReleased: { mouse.accepted = false; }
}
- MouseArea {
+ ResizeHandlerHelper {
anchors {
right: parent.right
left: parent.left
bottom: parent.bottom
}
- hoverEnabled: true
- height: root.mouseResizeMargin
- cursorShape: enabled ? Qt.SizeVerCursor : Qt.ArrowCursor
+ shape: Qt.SizeVerCursor
z: mouseArea.z + 1
- enabled: root.resizeAllowed
- onPressed: { mouse.accepted = false; }
- onReleased: { mouse.accepted = false; }
}
- MouseArea {
+ ResizeHandlerHelper {
anchors {
right: parent.right
bottom: parent.bottom
}
- hoverEnabled: true
- height: root.mouseResizeMargin
- width: height
-
- cursorShape: enabled ? Qt.SizeFDiagCursor : Qt.ArrowCursor
+ shape: Qt.SizeFDiagCursor
z: mouseArea.z + 2
- enabled: root.resizeAllowed
- onPressed: { mouse.accepted = false; }
- onReleased: { mouse.accepted = false; }
}
- MouseArea {
+ ResizeHandlerHelper {
anchors {
left: parent.left
top: parent.top
}
- hoverEnabled: true
- height: root.mouseResizeMargin
- width: height
-
- cursorShape: enabled ? Qt.SizeFDiagCursor : Qt.ArrowCursor
+ shape: Qt.SizeFDiagCursor
z: mouseArea.z + 2
- enabled: root.resizeAllowed
- onPressed: { mouse.accepted = false; }
- onReleased: { mouse.accepted = false; }
}
- MouseArea {
+ ResizeHandlerHelper {
anchors {
right: parent.right
top: parent.top
}
- hoverEnabled: true
- height: root.mouseResizeMargin
- width: height
-
- cursorShape: enabled ? Qt.SizeBDiagCursor : Qt.ArrowCursor
+ shape: Qt.SizeBDiagCursor
z: mouseArea.z + 2
- enabled: root.resizeAllowed
- onPressed: { mouse.accepted = false; }
- onReleased: { mouse.accepted = false; }
}
- MouseArea {
+ ResizeHandlerHelper {
anchors {
left: parent.left
bottom: parent.bottom
}
- hoverEnabled: true
- height: root.mouseResizeMargin
- width: height
-
- cursorShape: enabled ? Qt.SizeBDiagCursor : Qt.ArrowCursor
+ shape: Qt.SizeBDiagCursor
z: mouseArea.z + 2
- enabled: root.resizeAllowed
- onPressed: { mouse.accepted = false; }
- onReleased: { mouse.accepted = false; }
}
-
MouseArea {
id: mouseArea
objectName: "frameMouseArea"
diff --git a/src/private/quick/qml/ResizeHandlerHelper.qml b/src/private/quick/qml/ResizeHandlerHelper.qml
new file mode 100644
index 00000000..6e6a2051
--- /dev/null
+++ b/src/private/quick/qml/ResizeHandlerHelper.qml
@@ -0,0 +1,30 @@
+/*
+ This file is part of KDDockWidgets.
+
+ SPDX-FileCopyrightText: 2019-2021 Klarälvdalens Datakonsult AB, a KDAB Group company
+ Author: Sérgio Martins
+
+ SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
+
+ Contact KDAB at for commercial licensing options.
+*/
+
+import QtQuick 2.9
+import QtQuick.Controls 2.9
+import QtQuick.Layouts 1.9
+
+
+MouseArea {
+ id: root
+ property int resizeMargin: 2
+ property int shape
+ property bool resizeAllowed: true
+
+ hoverEnabled: true
+ width: resizeMargin
+ cursorShape: enabled ? shape : Qt.ArrowCursor // Even if disabled the MouseArea changes cursor, as it's different than Item.enabled, so explicitly change cursor if disabled
+ z: mouseArea.z + 1
+ enabled: resizeAllowed
+ onPressed: { mouse.accepted = false; }
+ onReleased: { mouse.accepted = false; }
+}