From d4f43381b44b8d76105937dd7f288a72a42cf8d0 Mon Sep 17 00:00:00 2001 From: wangfei Date: Fri, 9 Aug 2024 17:31:19 +0800 Subject: [PATCH] fix: can't move dialog window change Control to Item, as Control do not let clicks and touches through to items below them. Issue: https://github.com/linuxdeepin/dtk/issues/190 --- qt6/src/qml/DialogTitleBar.qml | 35 +++++++++++++++++++--------------- qt6/src/qml/DialogWindow.qml | 11 ++++++----- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/qt6/src/qml/DialogTitleBar.qml b/qt6/src/qml/DialogTitleBar.qml index 11fa1a82..e8feb26d 100644 --- a/qt6/src/qml/DialogTitleBar.qml +++ b/qt6/src/qml/DialogTitleBar.qml @@ -2,13 +2,13 @@ // // SPDX-License-Identifier: LGPL-3.0-or-later -import QtQuick 2.11 -import QtQuick.Window 2.11 -import QtQuick.Layouts 1.11 +import QtQuick +import QtQuick.Window +import QtQuick.Layouts import org.deepin.dtk 1.0 as D import org.deepin.dtk.style 1.0 as DS -Control { +Item { id: control z: D.DTK.TopOrder width: Window.window.width @@ -39,15 +39,17 @@ Control { } } - background: D.InWindowBlur { + D.InWindowBlur { id: background visible: false + anchors.fill: parent } - contentItem: ColumnLayout { + ColumnLayout { id: content spacing: 0 + anchors.fill: parent Rectangle { id: separatorTop Layout.preferredWidth: parent.width @@ -63,15 +65,18 @@ Control { Layout.preferredWidth: parent.width Layout.leftMargin: DS.Style.titleBar.leftMargin - D.DciIcon { - id: iconLabel - visible: name !== "" - mode: control.D.ColorSelector.controlState - theme: control.D.ColorSelector.controlTheme - palette: D.DTK.makeIconPalette(control.palette) - sourceSize { - width: DS.Style.dialogWindow.iconSize - height: DS.Style.dialogWindow.iconSize + Control { + id: iconControl + visible: iconLabel.name !== "" + contentItem: D.DciIcon { + id: iconLabel + mode: iconControl.D.ColorSelector.controlState + theme: iconControl.D.ColorSelector.controlTheme + palette: D.DTK.makeIconPalette(iconControl.palette) + sourceSize { + width: DS.Style.dialogWindow.iconSize + height: DS.Style.dialogWindow.iconSize + } } } diff --git a/qt6/src/qml/DialogWindow.qml b/qt6/src/qml/DialogWindow.qml index b208f881..7bd44968 100644 --- a/qt6/src/qml/DialogWindow.qml +++ b/qt6/src/qml/DialogWindow.qml @@ -2,9 +2,9 @@ // // SPDX-License-Identifier: LGPL-3.0-or-later -import QtQuick 2.11 -import QtQuick.Layouts 1.11 -import QtQuick.Window 2.11 +import QtQuick +import QtQuick.Layouts +import QtQuick.Window import org.deepin.dtk 1.0 as D import org.deepin.dtk.style 1.0 as DS @@ -31,10 +31,11 @@ Window { default property alias content: contentLoader.children property alias palette : content.palette - Control { + Item { id: content palette: control.active ? D.DTK.palette : D.DTK.inactivePalette - contentItem: ColumnLayout { + implicitHeight: childrenRect.height + ColumnLayout { id: layout spacing: 0