diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/controls/ApplicationWindow.qml | 24 | ||||
| -rw-r--r-- | src/controls/MenuBar.qml | 13 | ||||
| -rw-r--r-- | src/controls/Private/ContentItem.qml | 33 | ||||
| -rw-r--r-- | src/controls/ToolBar.qml | 10 |
4 files changed, 66 insertions, 14 deletions
diff --git a/src/controls/ApplicationWindow.qml b/src/controls/ApplicationWindow.qml index 542cfe4e2..2f019d310 100644 --- a/src/controls/ApplicationWindow.qml +++ b/src/controls/ApplicationWindow.qml @@ -198,11 +198,19 @@ Window { /*! \internal */ default property alias data: contentArea.data - flags: Qt.Window | Qt.WindowFullscreenButtonHint | - Qt.WindowTitleHint | Qt.WindowSystemMenuHint | Qt.WindowMinMaxButtonsHint | - Qt.WindowCloseButtonHint | Qt.WindowFullscreenButtonHint - // QTBUG-35049: Windows is removing features we didn't ask for, even though Qt::CustomizeWindowHint is not set - // Otherwise Qt.Window | Qt.WindowFullscreenButtonHint would be enough + flags: { + var flags = Qt.Window | Qt.WindowFullscreenButtonHint; + + // QTBUG-35049: Windows is removing features we didn't ask for, even though Qt::CustomizeWindowHint is not set + // Otherwise Qt.Window | Qt.WindowFullscreenButtonHint would be enough + flags |= Qt.WindowTitleHint | Qt.WindowSystemMenuHint | Qt.WindowMinMaxButtonsHint | + Qt.WindowCloseButtonHint | Qt.WindowFullscreenButtonHint + + if (Settings.styleName === "iOS") + flags |= Qt.MaximizeUsingFullscreenGeometryHint; + + return flags; + } Loader { id: panelLoader @@ -235,8 +243,12 @@ Window { ContentItem { id: contentArea - anchors.fill: parent parent: __panel.contentArea + anchors { + fill: parent + topMargin: systemPadding.top; bottomMargin: systemPadding.bottom + leftMargin: systemPadding.left; rightMargin: systemPadding.right + } } } } diff --git a/src/controls/MenuBar.qml b/src/controls/MenuBar.qml index 7a92c1ecd..f1f702f6e 100644 --- a/src/controls/MenuBar.qml +++ b/src/controls/MenuBar.qml @@ -132,6 +132,11 @@ MenuBarPrivate { value: menuMouseArea.z - 1 } + ContentItem { + // Only used for system padding, the real content item is the Row below + id: contentItem + } + QtObject { id: d @@ -139,7 +144,8 @@ MenuBarPrivate { property int openedMenuIndex: -1 property bool preselectMenuItem: false - property real heightPadding: style ? style.padding.top + style.padding.bottom : 0 + property real heightPadding: (style ? style.padding.top + style.padding.bottom : 0) + + contentItem.systemPadding.top + contentItem.systemPadding.bottom property bool altPressed: false property bool altPressedAgain: false @@ -219,9 +225,10 @@ MenuBarPrivate { Row { id: row - x: d.style ? d.style.padding.left : 0 - y: d.style ? d.style.padding.top : 0 + x: (d.style ? d.style.padding.left : 0) + contentItem.systemPadding.left + y: (d.style ? d.style.padding.top : 0) + contentItem.systemPadding.top width: parent.width - (d.style ? d.style.padding.left + d.style.padding.right : 0) + - (contentItem.systemPadding.left + contentItem.systemPadding.right) LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft Repeater { diff --git a/src/controls/Private/ContentItem.qml b/src/controls/Private/ContentItem.qml index e131f1d45..2f6f1d709 100644 --- a/src/controls/Private/ContentItem.qml +++ b/src/controls/Private/ContentItem.qml @@ -36,6 +36,9 @@ import QtQuick 2.2 import QtQuick.Layouts 1.1 +import QtQuick.Controls 1.0 +import QtQuick.Controls.Private 1.0 +import QtQuick.Window 2.2 Item { id: contentItem @@ -46,6 +49,8 @@ Item { implicitWidth: __calcImplicitWidth() implicitHeight: __calcImplicitHeight() + property Padding systemPadding: Padding { top: 0; left: 0; bottom: 0; right: 0 } + /*! \internal */ property Item __layoutItem: contentItem.visibleChildren.length === 1 ? contentItem.visibleChildren[0] : null /*! \internal */ @@ -102,4 +107,32 @@ Item { extent += contentItem['__margins' + hw] return extent } + + /*! \internal */ + property rect __screenReservedArea: { + return Qt.rect( + Screen.width - Screen.desktopAvailableWidth, + Screen.height - Screen.desktopAvailableHeight, + 0, 0 + ); + } + + /*! \internal */ + property rect __systemPadding: { + if (Window.visibility != Window.Maximized) + return Qt.rect(0, 0, 0, 0) + + return Qt.rect( + Math.max(0, __screenReservedArea.x - contentItem.parent.x - Controls.window.x), + Math.max(0, __screenReservedArea.y - contentItem.parent.y - Controls.window.y), + 0, 0 + ); + } + + on__SystemPaddingChanged: { + systemPadding.top = __systemPadding.y + systemPadding.left = __systemPadding.x + systemPadding.right = __systemPadding.width + systemPadding.bottom = __systemPadding.height + } } diff --git a/src/controls/ToolBar.qml b/src/controls/ToolBar.qml index 48f62f167..6a72a9b28 100644 --- a/src/controls/ToolBar.qml +++ b/src/controls/ToolBar.qml @@ -139,7 +139,7 @@ FocusScope { sourceComponent: style } }, - Item { + ContentItem { id: container z: 1 focus: true @@ -150,10 +150,10 @@ FocusScope { anchors.rightMargin: rightMargin + (buttonLoader.active ? buttonLoader.width + rightMargin : 0) anchors.bottomMargin: bottomMargin - property int topMargin: __style ? __style.padding.top : 0 - property int bottomMargin: __style ? __style.padding.bottom : 0 - property int leftMargin: __style ? __style.padding.left : 0 - property int rightMargin: __style ? __style.padding.right : 0 + property int topMargin: (__style ? __style.padding.top : 0) + systemPadding.top + property int bottomMargin: (__style ? __style.padding.bottom : 0) + systemPadding.bottom + property int leftMargin: (__style ? __style.padding.left : 0) + systemPadding.left + property int rightMargin: (__style ? __style.padding.right : 0) + systemPadding.right property Item layoutItem: container.children.length === 1 ? container.children[0] : null property real layoutWidth: layoutItem ? (layoutItem.implicitWidth || layoutItem.width) + |
