From f91f9f26ce42ac234dcf36421fbefd88b2dced2e Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Fri, 27 Jan 2017 20:31:41 +0200 Subject: [PATCH] fix #93,masking updated correctly on config win --this can be tested by opening the configuration window through the tasks. Even though a task is zoomed when triggering the configuration window the animations do not break afterwards --- app/dockconfigview.cpp | 4 ++-- app/dockview.cpp | 16 ++++++++++++++++ app/dockview.h | 6 ++++++ containment/contents/ui/VisibilityManager.qml | 12 +++++++++--- 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/app/dockconfigview.cpp b/app/dockconfigview.cpp index 6a7515730..0ba90697b 100644 --- a/app/dockconfigview.cpp +++ b/app/dockconfigview.cpp @@ -108,10 +108,10 @@ void DockConfigView::syncGeometry() if (location == Plasma::Types::TopEdge) { setPosition(sGeometry.center().x() - size.width() / 2 - , m_dockView->currentThickness()); + , m_dockView->normalThickness()); } else if (location == Plasma::Types::BottomEdge) { setPosition(sGeometry.center().x() - size.width() / 2 - , sGeometry.height() - m_dockView->currentThickness() - size.height()); + , sGeometry.height() - m_dockView->normalThickness() - size.height()); } } break; diff --git a/app/dockview.cpp b/app/dockview.cpp index 854b9eff0..0c807eb4a 100644 --- a/app/dockview.cpp +++ b/app/dockview.cpp @@ -322,6 +322,22 @@ int DockView::currentThickness() const } } +int DockView::normalThickness() const +{ + return m_normalThickness; +} + +void DockView::setNormalThickness(int thickness) +{ + if (m_normalThickness == thickness) { + return; + } + + m_normalThickness = thickness; + + emit normalThicknessChanged(); +} + int DockView::docksCount() const { auto dockCorona = qobject_cast(corona()); diff --git a/app/dockview.h b/app/dockview.h index c789a8be4..06a039a21 100644 --- a/app/dockview.h +++ b/app/dockview.h @@ -48,6 +48,7 @@ class DockView : public PlasmaQuick::ContainmentView { Q_PROPERTY(int height READ height NOTIFY heightChanged) Q_PROPERTY(int maxLength READ maxLength WRITE setMaxLength NOTIFY maxLengthChanged) Q_PROPERTY(int maxThickness READ maxThickness WRITE setMaxThickness NOTIFY maxThicknessChanged) + Q_PROPERTY(int normalThickness READ normalThickness WRITE setNormalThickness NOTIFY normalThicknessChanged) Q_PROPERTY(int shadow READ shadow WRITE setShadow NOTIFY shadowChanged) Q_PROPERTY(QRect maskArea READ maskArea WRITE setMaskArea NOTIFY maskAreaChanged) @@ -76,6 +77,9 @@ public: int maxThickness() const; void setMaxThickness(int thickness); + int normalThickness() const; + void setNormalThickness(int thickness); + int shadow() const; void setShadow(int shadow); @@ -118,6 +122,7 @@ signals: void heightChanged(); void maxLengthChanged(); void maxThicknessChanged(); + void normalThicknessChanged(); void visibilityChanged(); void maskAreaChanged(); void shadowChanged(); @@ -141,6 +146,7 @@ private: int m_maxLength{INT_MAX}; int m_maxThickness{24}; + int m_normalThickness{24}; int m_shadow{0}; QRect m_localDockGeometry; diff --git a/containment/contents/ui/VisibilityManager.qml b/containment/contents/ui/VisibilityManager.qml index 12c5d8d50..05482368f 100644 --- a/containment/contents/ui/VisibilityManager.qml +++ b/containment/contents/ui/VisibilityManager.qml @@ -66,6 +66,13 @@ Item{ value: thicknessZoomOriginal } + Binding{ + target: dock + property:"normalThickness" + when: dock + value: thicknessNormalOriginal + } + onInStartupChanged: { if (!inStartup) { delayAnimationTimer.start(); @@ -80,7 +87,6 @@ Item{ onThicknessZoomOriginalChanged: updateMaskArea(); - function slotContainsMouseChanged() { if(dock.visibility.containsMouse) { if (delayerTimer.running) { @@ -134,7 +140,7 @@ Item{ var space = root.useThemePanel ? root.panelEdgeSpacing + 2*root.shadowsSize : 2; - if (normalState && !root.editMode) { + if (normalState) { //console.log("entered normal state..."); //count panel length if(root.isHorizontal) { @@ -194,7 +200,7 @@ Item{ tempLength = Screen.height; //screenGeometry.height; //grow only on length and not thickness - if(root.editMode || (root.animationsNeedLength>0 && root.animationsNeedBothAxis === 0)) { + if(root.animationsNeedLength>0 && root.animationsNeedBothAxis === 0) { //this is used to fix a bug with shadow showing when the animation of edit mode //is triggered