From 02980062bf8380cc3c671977979164915aa30474 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Mon, 27 Feb 2017 16:02:09 -0800 Subject: [PATCH] Modified DropPanel cancel MouseArea creation Previous mechanism was exposing possible bug in Qt which would prevent clicks from work on ToolStrip buttons after cancel MouseArea was hidden. --- src/QmlControls/DropPanel.qml | 16 ++++++++++++++++ src/QmlControls/ToolStrip.qml | 10 ---------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/QmlControls/DropPanel.qml b/src/QmlControls/DropPanel.qml index 0bc38aedd..68303bb3b 100644 --- a/src/QmlControls/DropPanel.qml +++ b/src/QmlControls/DropPanel.qml @@ -47,6 +47,7 @@ Item { property alias _dropDownComponent: dropDownLoader.sourceComponent property real _viewportMaxTop: 0 property real _viewportMaxBottom: parent.parent.height - parent.y + property var _dropPanelCancel function show(panelEdgeTopPoint, panelEdgeHeight, panelComponent) { _dropEdgeTopPoint = panelEdgeTopPoint @@ -54,9 +55,13 @@ Item { _dropDownComponent = panelComponent _calcPositions() visible = true + _dropPanelCancel = dropPanelCancelComponent.createObject(toolStrip.parent) } function hide() { + if (_dropPanelCancel) { + _dropPanelCancel.destroy() + } if (visible) { visible = false _dropDownComponent = undefined @@ -101,6 +106,17 @@ Item { QGCPalette { id: qgcPal } + Component { + // Overlay which is used to cancel the panel when the user clicks away + id: dropPanelCancelComponent + + MouseArea { + anchors.fill: parent + z: toolStrip.z - 1 + onClicked: dropPanel.hide() + } + } + Item { id: dropDownItem diff --git a/src/QmlControls/ToolStrip.qml b/src/QmlControls/ToolStrip.qml index 89ae07a46..76331e1f5 100644 --- a/src/QmlControls/ToolStrip.qml +++ b/src/QmlControls/ToolStrip.qml @@ -47,16 +47,6 @@ Rectangle { } } - MouseArea { - x: -_root.x - y: -_root.y - width: _root.parent.width - height: _root.parent.height - visible: dropPanel.visible - onClicked: dropPanel.hide() - preventStealing: true - } - Column { id: buttonStripColumn anchors.margins: ScreenTools.defaultFontPixelWidth / 2 -- 2.22.0