summaryrefslogtreecommitdiff
path: root/kde-plasma/plasma-desktop/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-05-11 19:55:43 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-05-11 19:55:43 +0100
commit185fa19bbf68a4d4dca534d2b46729207a177f16 (patch)
treea8a537b82fda83a0799c2ca9887f212558363aa7 /kde-plasma/plasma-desktop/files
parentc8fd0d84af0bfd1949542adc2cbb735b1d28f9ed (diff)
gentoo resync : 11.05.2021
Diffstat (limited to 'kde-plasma/plasma-desktop/files')
-rw-r--r--kde-plasma/plasma-desktop/files/plasma-desktop-5.21.5-transparency.patch239
1 files changed, 239 insertions, 0 deletions
diff --git a/kde-plasma/plasma-desktop/files/plasma-desktop-5.21.5-transparency.patch b/kde-plasma/plasma-desktop/files/plasma-desktop-5.21.5-transparency.patch
new file mode 100644
index 000000000000..3066d3a2747b
--- /dev/null
+++ b/kde-plasma/plasma-desktop/files/plasma-desktop-5.21.5-transparency.patch
@@ -0,0 +1,239 @@
+From 6fb37dc0260c298bc35ec5e39399aa1f31693e79 Mon Sep 17 00:00:00 2001
+From: Carson Black <uhhadd@gmail.com>
+Date: Thu, 6 Aug 2020 11:58:23 +0200
+Subject: [PATCH] Implement adaptive opacity for panels
+
+---
+ .../contents/applet/CompactApplet.qml | 1 +
+ .../panelconfiguration/MoreSettingsMenu.qml | 35 +++++
+ desktoppackage/contents/views/Panel.qml | 144 +++++++++++++++++-
+ 3 files changed, 174 insertions(+), 6 deletions(-)
+
+diff --git a/desktoppackage/contents/applet/CompactApplet.qml b/desktoppackage/contents/applet/CompactApplet.qml
+index 0d4c85f52..65eb0468e 100644
+--- a/desktoppackage/contents/applet/CompactApplet.qml
++++ b/desktoppackage/contents/applet/CompactApplet.qml
+@@ -153,6 +153,7 @@ PlasmaCore.ToolTipArea {
+ visualParent: compactRepresentation ? compactRepresentation : null
+ location: plasmoid.location
+ hideOnWindowDeactivate: plasmoid.hideOnWindowDeactivate
++ backgroundHints: (plasmoid.containmentDisplayHints & PlasmaCore.Types.DesktopFullyCovered) ? PlasmaCore.Dialog.SolidBackground : PlasmaCore.Dialog.StandardBackground
+
+ property var oldStatus: PlasmaCore.Types.UnknownStatus
+
+diff --git a/desktoppackage/contents/configuration/panelconfiguration/MoreSettingsMenu.qml b/desktoppackage/contents/configuration/panelconfiguration/MoreSettingsMenu.qml
+index 2e577fbcc..d668eb3c2 100644
+--- a/desktoppackage/contents/configuration/panelconfiguration/MoreSettingsMenu.qml
++++ b/desktoppackage/contents/configuration/panelconfiguration/MoreSettingsMenu.qml
+@@ -131,6 +131,41 @@ PlasmaCore.Dialog {
+ flat: false
+ }
+ }
++ PlasmaExtras.Heading {
++ level: 3
++ text: i18nd("plasma_shell_org.kde.plasma.desktop", "Opacity")
++ visible: panel.adaptiveOpacityEnabled
++ }
++ PlasmaComponents.ButtonColumn {
++ spacing: 0
++ visible: panel.adaptiveOpacityEnabled
++ Layout.fillWidth: true
++ Layout.minimumWidth: implicitWidth
++ PlasmaComponents.ToolButton {
++ width: Math.max(implicitWidth, parent.width)
++ text: i18nd("plasma_shell_org.kde.plasma.desktop", "Adaptive")
++ checkable: true
++ checked: configDialog.opacityMode === 0
++ onClicked: configDialog.opacityMode = 0
++ flat: false
++ }
++ PlasmaComponents.ToolButton {
++ width: Math.max(implicitWidth, parent.width)
++ text: i18nd("plasma_shell_org.kde.plasma.desktop", "Opaque")
++ checkable: true
++ checked: configDialog.opacityMode === 1
++ onClicked: configDialog.opacityMode = 1
++ flat: false
++ }
++ PlasmaComponents.ToolButton {
++ width: Math.max(implicitWidth, parent.width)
++ text: i18nd("plasma_shell_org.kde.plasma.desktop", "Translucent")
++ checkable: true
++ checked: configDialog.opacityMode === 2
++ onClicked: configDialog.opacityMode = 2
++ flat: false
++ }
++ }
+ PlasmaComponents.ToolButton {
+ Layout.fillWidth: true
+ text: i18nd("plasma_shell_org.kde.plasma.desktop", "Maximize Panel")
+diff --git a/desktoppackage/contents/views/Panel.qml b/desktoppackage/contents/views/Panel.qml
+index 2fd6ac4d5..cf6c04328 100644
+--- a/desktoppackage/contents/views/Panel.qml
++++ b/desktoppackage/contents/views/Panel.qml
+@@ -21,17 +21,27 @@ import QtQuick.Layouts 1.1
+ import QtQml 2.15
+
+ import org.kde.plasma.core 2.0 as PlasmaCore
++import org.kde.taskmanager 0.1 as TaskManager
+
+-PlasmaCore.FrameSvgItem {
++Item {
+ id: root
+
+- imagePath: containment && containment.backgroundHints === PlasmaCore.Types.NoBackground ? "" : "widgets/panel-background"
+-
+- enabledBorders: panel.enabledBorders
+-
+ property Item containment
+
+- property alias panelMask: root.mask
++ property alias panelMask: privateSwapper.mask
++
++ QtObject {
++ id: privateSwapper
++ property string completedState: ""
++ // Work around the fact that we can't use a ternary if in an alias
++ readonly property var mask: {
++ if (completedState == "opaque") {
++ return opaqueItem.mask
++ } else {
++ return translucentItem.mask
++ }
++ }
++ }
+
+ readonly property bool verticalPanel: containment && containment.formFactor === PlasmaCore.Types.Vertical
+
+@@ -47,6 +57,128 @@ PlasmaCore.FrameSvgItem {
+ readonly property int leftPadding: Math.round(Math.min(thickPanelSvg.fixedMargins.left, spacingAtMinSize));
+ readonly property int rightPadding: Math.round(Math.min(thickPanelSvg.fixedMargins.right, spacingAtMinSize));
+
++ TaskManager.VirtualDesktopInfo {
++ id: virtualDesktopInfo
++ }
++
++ TaskManager.ActivityInfo {
++ id: activityInfo
++ }
++
++ PlasmaCore.SortFilterModel {
++ id: visibleWindowsModel
++ filterRole: 'IsMinimized'
++ filterRegExp: 'false'
++ sourceModel: TaskManager.TasksModel {
++ filterByVirtualDesktop: true
++ filterByActivity: true
++ filterNotMaximized: true
++ filterByScreen: true
++
++ screenGeometry: panel.screenGeometry
++ virtualDesktop: virtualDesktopInfo.currentDesktop
++ activity: activityInfo.currentActivity
++
++ id: tasksModel
++ groupMode: TaskManager.TasksModel.GroupDisabled
++ }
++ }
++
++ PlasmaCore.FrameSvgItem {
++ id: translucentItem
++ enabledBorders: panel.enabledBorders
++ anchors.fill: parent
++
++ imagePath: containment && containment.backgroundHints === PlasmaCore.Types.NoBackground ? "" : "widgets/panel-background"
++ }
++
++ PlasmaCore.FrameSvgItem {
++ id: opaqueItem
++ enabledBorders: panel.enabledBorders
++ anchors.fill: parent
++
++ imagePath: containment && containment.backgroundHints === PlasmaCore.Types.NoBackground ? "" : "solid/widgets/panel-background"
++ }
++
++ transitions: [
++ Transition {
++ from: "*"
++ to: "transparent"
++ SequentialAnimation {
++ ScriptAction {
++ script: {
++ translucentItem.visible = true
++ }
++ }
++ NumberAnimation {
++ target: opaqueItem
++ properties: "opacity"
++ from: 1
++ to: 0
++ duration: units.veryLongDuration
++ easing.type: Easing.InOutQuad
++ }
++ ScriptAction {
++ script: {
++ opaqueItem.visible = false
++ privateSwapper.completedState = "transparent"
++ root.panelMaskChanged()
++ }
++ }
++ }
++ },
++ Transition {
++ from: "*"
++ to: "opaque"
++ SequentialAnimation {
++ ScriptAction {
++ script: {
++ opaqueItem.visible = true
++ }
++ }
++ NumberAnimation {
++ target: opaqueItem
++ properties: "opacity"
++ from: 0
++ to: 1
++ duration: units.veryLongDuration
++ easing.type: Easing.InOutQuad
++ }
++ ScriptAction {
++ script: {
++ translucentItem.visible = false
++ privateSwapper.completedState = "opaque"
++ root.panelMaskChanged()
++ }
++ }
++ }
++ }
++ ]
++
++ Component.onCompleted: {
++ state = Qt.binding(function() {
++ let mstate = '';
++ if (panel.opacityMode == 0) {
++ mstate = visibleWindowsModel.count > 0 ? "opaque" : "transparent"
++ } else if (panel.opacityMode == 1) {
++ mstate = "opaque"
++ } else {
++ mstate = "transparent"
++ }
++ if (mstate == 'opaque') {
++ containment.containmentDisplayHints |= PlasmaCore.Types.DesktopFullyCovered;
++ } else {
++ containment.containmentDisplayHints &= ~PlasmaCore.Types.DesktopFullyCovered;
++ }
++ return mstate;
++ })
++ }
++ state: ""
++ states: [
++ State { name: "opaque" },
++ State { name: "transparent" }
++ ]
++
+ function adjustPrefix() {
+ if (!containment) {
+ return "";
+--
+GitLab
+