From 1510f1013c5ad86ddccac83e02c1ee38e7d8f5ae Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Tue, 16 Oct 2018 20:12:50 +0300 Subject: [PATCH] add option to colorize based on active win scheme --- containment/package/contents/config/main.xml | 3 +++ containment/package/contents/ui/PanelBox.qml | 7 ++----- containment/package/contents/ui/main.qml | 9 +++++---- .../contents/configuration/TweaksConfig.qml | 17 ++++++++++++++++- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/containment/package/contents/config/main.xml b/containment/package/contents/config/main.xml index fe842a9e6..f7a1e684b 100644 --- a/containment/package/contents/config/main.xml +++ b/containment/package/contents/config/main.xml @@ -78,6 +78,9 @@ false + + false + -1 diff --git a/containment/package/contents/ui/PanelBox.qml b/containment/package/contents/ui/PanelBox.qml index 5e418b468..262442e73 100644 --- a/containment/package/contents/ui/PanelBox.qml +++ b/containment/package/contents/ui/PanelBox.qml @@ -475,11 +475,8 @@ Item{ Rectangle { anchors.fill: solidBackground - opacity: showColoredPanel ? solidBackground.opacity : 0 - color: showColoredPanel ? dock.visibility.touchingWindowScheme.backgroundColor : "#00000000" - - readonly property bool showColoredPanel: dock && dock.visibility && (dock.visibility.existsWindowMaximized || dock.visibility.existsWindowSnapped) - && !hasExpandedApplet + opacity: root.forceColorizeFromActiveWindowScheme ? solidBackground.opacity : 0 + color: root.forceColorizeFromActiveWindowScheme ? dock.visibility.touchingWindowScheme.backgroundColor : "#00000000" } PlasmaCore.FrameSvgItem{ diff --git a/containment/package/contents/ui/main.qml b/containment/package/contents/ui/main.qml index 97ac42486..f761a3e30 100644 --- a/containment/package/contents/ui/main.qml +++ b/containment/package/contents/ui/main.qml @@ -103,6 +103,10 @@ DragDrop.DropArea { && !(hasExpandedApplet && zoomFactor===1 && plasmoid.configuration.panelSize===100) property bool forceColorizer: Latte.WindowSystem.compositingActive && plasmoid.configuration.colorizeTransparentPanels + property bool forceColorizeFromActiveWindowScheme: plasmoid.configuration.colorizeFromActiveWindowScheme && !editMode + && (dock && dock.visibility + && (dock.visibility.existsWindowMaximized || dock.visibility.existsWindowSnapped) + && !hasExpandedApplet) property bool maximizedWindowTitleBarBehavesAsPanelBackground: dock && dock.visibility && (!plasmoid.configuration.solidBackgroundForMaximized && plasmoid.configuration.backgroundOnlyOnMaximized) @@ -1742,10 +1746,7 @@ DragDrop.DropArea { readonly property bool forceSolidness: (root.solidPanel && !plasmoid.configuration.solidBackgroundForMaximized) || root.forceSolidPanel || !Latte.WindowSystem.compositingActive - readonly property bool forceSolidnessAndColorize: forceSolidness && dock && dock.visibility - && (dock.visibility.existsWindowMaximized || dock.visibility.existsWindowSnapped) - && !root.hasExpandedApplet - + readonly property bool forceSolidnessAndColorize: forceSolidness && forceColorizeFromActiveWindowScheme // formula for luminance according to: // https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef diff --git a/shell/package/contents/configuration/TweaksConfig.qml b/shell/package/contents/configuration/TweaksConfig.qml index d22ba0b6a..9d6b08376 100644 --- a/shell/package/contents/configuration/TweaksConfig.qml +++ b/shell/package/contents/configuration/TweaksConfig.qml @@ -125,7 +125,6 @@ PlasmaComponents.Page { PlasmaComponents.CheckBox { id: colorizeTransparentPanelsChk Layout.leftMargin: units.smallSpacing * 2 - Layout.bottomMargin: units.smallSpacing Layout.maximumWidth: (dialog.appliedWidth - units.smallSpacing * 2) - units.smallSpacing * 3 text: i18n("Monochrome contents when panel is transparent") checked: plasmoid.configuration.colorizeTransparentPanels @@ -139,6 +138,22 @@ PlasmaComponents.Page { } } + PlasmaComponents.CheckBox { + id: colorizeFromActiveWindowSchemeChk + Layout.leftMargin: units.smallSpacing * 2 + Layout.maximumWidth: (dialog.appliedWidth - units.smallSpacing * 2) - units.smallSpacing * 3 + text: i18n("Paint contents based on active window scheme") + checked: plasmoid.configuration.colorizeFromActiveWindowScheme + tooltip: i18n("The panel contents are colorized from active window scheme \nwhen that window is maximized or is touching the panel.") + style: LatteCheckBoxStyle{} + + enabled: solidForMaximizedChk.checked || onlyOnMaximizedChk.checked + + onClicked: { + plasmoid.configuration.colorizeFromActiveWindowScheme = checked; + } + } + PlasmaComponents.CheckBox { id: hideShadowsOnMaximizedChk Layout.leftMargin: units.smallSpacing * 2