diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2021-05-11 19:55:43 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2021-05-11 19:55:43 +0100 |
commit | 185fa19bbf68a4d4dca534d2b46729207a177f16 (patch) | |
tree | a8a537b82fda83a0799c2ca9887f212558363aa7 /kde-plasma/plasma-workspace/files | |
parent | c8fd0d84af0bfd1949542adc2cbb735b1d28f9ed (diff) |
gentoo resync : 11.05.2021
Diffstat (limited to 'kde-plasma/plasma-workspace/files')
4 files changed, 504 insertions, 0 deletions
diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.21.5-dangerous-shortcuts.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.21.5-dangerous-shortcuts.patch new file mode 100644 index 000000000000..f04bb866d5d3 --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.21.5-dangerous-shortcuts.patch @@ -0,0 +1,45 @@ +From e8e17c5ef8734fa56a78405e32277568e4e1095e Mon Sep 17 00:00:00 2001 +From: Nate Graham <nate@kde.org> +Date: Thu, 22 Apr 2021 08:38:18 -0600 +Subject: [PATCH] [ksmserver] Remove default shortcuts for "Without + Confirmation" actions + +These actions bypass the user setting for whether or not to show the +logout screen and always log out/reboot/etc. immediately. Because they +have default keyboard shortcuts, they can be triggered by accident and +cause unexpected logouts/reboots/etc. + +BUG: 435954 +FIXED-IN: 5.22 +--- + ksmserver/server.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/ksmserver/server.cpp b/ksmserver/server.cpp +index ac9da9f09..6f3179fb9 100644 +--- a/ksmserver/server.cpp ++++ b/ksmserver/server.cpp +@@ -880,17 +880,17 @@ void KSMServer::setupShortcuts() + + a = actionCollection->addAction(QStringLiteral("Log Out Without Confirmation")); + a->setText(i18n("Log Out Without Confirmation")); +- KGlobalAccel::self()->setGlobalShortcut(a, QList<QKeySequence>() << Qt::ALT + Qt::CTRL + Qt::SHIFT + Qt::Key_Delete); ++ KGlobalAccel::self()->setGlobalShortcut(a, QKeySequence()); + connect(a, &QAction::triggered, this, &KSMServer::logoutWithoutConfirmation); + + a = actionCollection->addAction(QStringLiteral("Halt Without Confirmation")); + a->setText(i18n("Halt Without Confirmation")); +- KGlobalAccel::self()->setGlobalShortcut(a, QList<QKeySequence>() << Qt::ALT + Qt::CTRL + Qt::SHIFT + Qt::Key_PageDown); ++ KGlobalAccel::self()->setGlobalShortcut(a, QKeySequence()); + connect(a, &QAction::triggered, this, &KSMServer::haltWithoutConfirmation); + + a = actionCollection->addAction(QStringLiteral("Reboot Without Confirmation")); + a->setText(i18n("Reboot Without Confirmation")); +- KGlobalAccel::self()->setGlobalShortcut(a, QList<QKeySequence>() << Qt::ALT + Qt::CTRL + Qt::SHIFT + Qt::Key_PageUp); ++ KGlobalAccel::self()->setGlobalShortcut(a, QKeySequence()); + connect(a, &QAction::triggered, this, &KSMServer::rebootWithoutConfirmation); + } + } +-- +GitLab + diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.21.5-revert-activate-krunner.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.21.5-revert-activate-krunner.patch new file mode 100644 index 000000000000..c2637286da10 --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.21.5-revert-activate-krunner.patch @@ -0,0 +1,56 @@ +From 9bdae154bb3711b0220d0a8a685b2329f487d1f2 Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner <asturm@gentoo.org> +Date: Mon, 15 Feb 2021 17:35:19 +0100 +Subject: [PATCH] Revert "Activate KRunner instead of running the binary" + +Causes applications to be started with cwd "/". + +See also: https://bugs.gentoo.org/767478 + +This reverts commit 0e575a20ef36532b5b40a40ea30f915976942477. +--- + krunner/CMakeLists.txt | 3 ++- + krunner/{krunner.desktop => krunner.desktop.cmake} | 4 ++-- + 2 files changed, 4 insertions(+), 3 deletions(-) + rename krunner/{krunner.desktop => krunner.desktop.cmake} (94%) + +diff --git a/krunner/CMakeLists.txt b/krunner/CMakeLists.txt +index 07d27c1dc..8e1f2e3bd 100644 +--- a/krunner/CMakeLists.txt ++++ b/krunner/CMakeLists.txt +@@ -31,7 +31,8 @@ target_compile_definitions(krunner PRIVATE -DPROJECT_VERSION="${PROJECT_VERSION} + install(TARGETS krunner ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) + install(FILES ${krunner_dbusAppXML} DESTINATION ${KDE_INSTALL_DBUSINTERFACEDIR} ) + +-install(FILES krunner.desktop DESTINATION ${DATA_INSTALL_DIR}/kglobalaccel) ++configure_file(krunner.desktop.cmake ${CMAKE_CURRENT_BINARY_DIR}/krunner.desktop @ONLY) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/krunner.desktop DESTINATION ${DATA_INSTALL_DIR}/kglobalaccel) + + set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KRunnerAppDBusInterface") + configure_package_config_file(KRunnerAppDBusInterfaceConfig.cmake.in +diff --git a/krunner/krunner.desktop b/krunner/krunner.desktop.cmake +similarity index 94% +rename from krunner/krunner.desktop +rename to krunner/krunner.desktop.cmake +index 7a0398696..c4c8c9d92 100644 +--- a/krunner/krunner.desktop ++++ b/krunner/krunner.desktop.cmake +@@ -1,5 +1,5 @@ + [Desktop Entry] +-Exec=dbus-send --type=method_call --dest=org.kde.krunner /App org.kde.krunner.App.toggleDisplay ++Exec=@CMAKE_INSTALL_PREFIX@/bin/krunner + Name=KRunner + Name[ar]=مشغّل.ك + Name[ast]=KRunner +@@ -60,7 +60,7 @@ Actions=RunClipboard + X-KDE-Wayland-Interfaces=org_kde_plasma_window_management + + [Desktop Action RunClipboard] +-Exec=dbus-send --type=method_call --dest=org.kde.krunner /App org.kde.krunner.App.displayWithClipboardContents ++Exec=krunner -c + Name=Run command on clipboard contents + Name[az]=Əmri, mübadilə buferindən başlatmaq + Name[ca]=Executa una ordre al contingut del porta-retalls +-- +2.31.1 + diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.21.5-transparency-panelConfig.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.21.5-transparency-panelConfig.patch new file mode 100644 index 000000000000..fb7993e6db72 --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.21.5-transparency-panelConfig.patch @@ -0,0 +1,27 @@ +From 1cf02aad96bfe650a1f4d1465ae15234205fb061 Mon Sep 17 00:00:00 2001 +From: Bharadwaj Raju <bharadwaj.raju777@protonmail.com> +Date: Mon, 26 Apr 2021 18:47:51 +0000 +Subject: [PATCH] Load panelOpacity from config parent, not from config + +BUG: 434285 +FIXED-IN: 5.22 +--- + shell/panelview.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/shell/panelview.cpp b/shell/panelview.cpp +index 5ed743024..4533e856f 100644 +--- a/shell/panelview.cpp ++++ b/shell/panelview.cpp +@@ -633,7 +633,7 @@ void PanelView::restore() + // the place for this config key is changed in Plasma 5.9 + // Do NOT use readConfigValueWithFallBack + setVisibilityMode((VisibilityMode)panelConfig.parent().readEntry<int>("panelVisibility", panelConfig.readEntry<int>("panelVisibility", (int)NormalPanel))); +- setOpacityMode((OpacityMode)readConfigValueWithFallBack("panelOpacity", PanelView::OpacityMode::Adaptive)); ++ setOpacityMode((OpacityMode)config().parent().readEntry<int>("panelOpacity", configDefaults().parent().readEntry<int>("panelOpacity", PanelView::OpacityMode::Adaptive))); + m_initCompleted = true; + resizePanel(); + positionPanel(); +-- +GitLab + diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.21.5-transparency.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.21.5-transparency.patch new file mode 100644 index 000000000000..1a925a137cef --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.21.5-transparency.patch @@ -0,0 +1,376 @@ +From 7db8d5ee551f30576588d31470fe287b6ad2adcd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Niccol=C3=B2=20Venerandi?= <niccolo@venerandi.com> +Date: Mon, 1 Mar 2021 22:14:43 +0000 +Subject: [PATCH] Add support for adaptive opacity panels + +Co-authored-by: Jan Blackquill <uhhadd@gmail.com> +--- + libtaskmanager/taskfilterproxymodel.cpp | 26 ++++++++++++++++++ + libtaskmanager/taskfilterproxymodel.h | 19 ++++++++++++++ + libtaskmanager/tasksmodel.cpp | 11 ++++++++ + libtaskmanager/tasksmodel.h | 19 ++++++++++++++ + shell/panelconfigview.cpp | 11 ++++++++ + shell/panelconfigview.h | 5 ++++ + shell/panelview.cpp | 35 +++++++++++++++++++++++++ + shell/panelview.h | 28 ++++++++++++++++++++ + 8 files changed, 154 insertions(+) + +diff --git a/libtaskmanager/taskfilterproxymodel.cpp b/libtaskmanager/taskfilterproxymodel.cpp +index 37a3076fd..6bb27537a 100644 +--- a/libtaskmanager/taskfilterproxymodel.cpp ++++ b/libtaskmanager/taskfilterproxymodel.cpp +@@ -40,6 +40,7 @@ public: + bool filterByScreen = false; + bool filterByActivity = false; + bool filterNotMinimized = false; ++ bool filterNotMaximized = false; + bool filterSkipTaskbar = true; + bool filterSkipPager = false; + +@@ -185,6 +186,22 @@ void TaskFilterProxyModel::setFilterNotMinimized(bool filter) + } + } + ++bool TaskFilterProxyModel::filterNotMaximized() const ++{ ++ return d->filterNotMaximized; ++} ++ ++void TaskFilterProxyModel::setFilterNotMaximized(bool filter) ++{ ++ if (d->filterNotMaximized != filter) { ++ d->filterNotMaximized = filter; ++ ++ invalidateFilter(); ++ ++ emit filterNotMaximizedChanged(); ++ } ++} ++ + bool TaskFilterProxyModel::filterSkipTaskbar() const + { + return d->filterSkipTaskbar; +@@ -301,6 +318,15 @@ bool TaskFilterProxyModel::acceptsRow(int sourceRow) const + } + } + ++ // Filter not maximized. ++ if (d->filterNotMaximized) { ++ bool isMaximized = sourceIdx.data(AbstractTasksModel::IsMaximized).toBool(); ++ ++ if (!isMaximized) { ++ return false; ++ } ++ } ++ + return true; + } + +diff --git a/libtaskmanager/taskfilterproxymodel.h b/libtaskmanager/taskfilterproxymodel.h +index 7ad2cb9ce..88ba3adab 100644 +--- a/libtaskmanager/taskfilterproxymodel.h ++++ b/libtaskmanager/taskfilterproxymodel.h +@@ -52,6 +52,7 @@ class TASKMANAGER_EXPORT TaskFilterProxyModel : public QSortFilterProxyModel, pu + Q_PROPERTY(bool filterByScreen READ filterByScreen WRITE setFilterByScreen NOTIFY filterByScreenChanged) + Q_PROPERTY(bool filterByActivity READ filterByActivity WRITE setFilterByActivity NOTIFY filterByActivityChanged) + Q_PROPERTY(bool filterNotMinimized READ filterNotMinimized WRITE setFilterNotMinimized NOTIFY filterNotMinimizedChanged) ++ Q_PROPERTY(bool filterNotMaximized READ filterNotMaximized WRITE setFilterNotMaximized NOTIFY filterNotMaximizedChanged) + Q_PROPERTY(bool filterSkipTaskbar READ filterSkipTaskbar WRITE setFilterSkipTaskbar NOTIFY filterSkipTaskbarChanged) + Q_PROPERTY(bool filterSkipPager READ filterSkipPager WRITE setFilterSkipPager NOTIFY filterSkipPagerChanged) + +@@ -212,6 +213,23 @@ public: + **/ + void setFilterNotMinimized(bool filter); + ++ /** ++ * Whether non-maximized tasks should be filtered. Defaults to ++ * @c false. ++ * ++ * @see setFilterNotMaximized ++ * @returns @c true if non-maximized tasks should be filtered. ++ **/ ++ bool filterNotMaximized() const; ++ ++ /** ++ * Set whether non-maximized tasks should be filtered. ++ * ++ * @see filterNotMaximized ++ * @param filter Whether non-maximized tasks should be filtered. ++ **/ ++ void setFilterNotMaximized(bool filter); ++ + /** + * Whether tasks which should be omitted from 'task bars' should be + * filtered. Defaults to @c true. +@@ -285,6 +303,7 @@ Q_SIGNALS: + void filterByScreenChanged() const; + void filterByActivityChanged() const; + void filterNotMinimizedChanged() const; ++ void filterNotMaximizedChanged() const; + void filterSkipTaskbarChanged() const; + void filterSkipPagerChanged() const; + void demandingAttentionSkipsFiltersChanged() const; +diff --git a/libtaskmanager/tasksmodel.cpp b/libtaskmanager/tasksmodel.cpp +index c6e66926b..11eb53fdf 100644 +--- a/libtaskmanager/tasksmodel.cpp ++++ b/libtaskmanager/tasksmodel.cpp +@@ -302,6 +302,7 @@ void TasksModel::Private::initModels() + QObject::connect(filterProxyModel, &TaskFilterProxyModel::filterByScreenChanged, q, &TasksModel::filterByScreenChanged); + QObject::connect(filterProxyModel, &TaskFilterProxyModel::filterByActivityChanged, q, &TasksModel::filterByActivityChanged); + QObject::connect(filterProxyModel, &TaskFilterProxyModel::filterNotMinimizedChanged, q, &TasksModel::filterNotMinimizedChanged); ++ QObject::connect(filterProxyModel, &TaskFilterProxyModel::filterNotMaximizedChanged, q, &TasksModel::filterNotMaximizedChanged); + + groupingProxyModel = new TaskGroupingProxyModel(q); + groupingProxyModel->setSourceModel(filterProxyModel); +@@ -1152,6 +1153,16 @@ void TasksModel::setFilterNotMinimized(bool filter) + d->filterProxyModel->setFilterNotMinimized(filter); + } + ++bool TasksModel::filterNotMaximized() const ++{ ++ return d->filterProxyModel->filterNotMaximized(); ++} ++ ++void TasksModel::setFilterNotMaximized(bool filter) ++{ ++ d->filterProxyModel->setFilterNotMaximized(filter); ++} ++ + TasksModel::SortMode TasksModel::sortMode() const + { + return d->sortMode; +diff --git a/libtaskmanager/tasksmodel.h b/libtaskmanager/tasksmodel.h +index 18e3d9bb4..8c84012d0 100644 +--- a/libtaskmanager/tasksmodel.h ++++ b/libtaskmanager/tasksmodel.h +@@ -73,6 +73,7 @@ class TASKMANAGER_EXPORT TasksModel : public QSortFilterProxyModel, public Abstr + Q_PROPERTY(bool filterByScreen READ filterByScreen WRITE setFilterByScreen NOTIFY filterByScreenChanged) + Q_PROPERTY(bool filterByActivity READ filterByActivity WRITE setFilterByActivity NOTIFY filterByActivityChanged) + Q_PROPERTY(bool filterNotMinimized READ filterNotMinimized WRITE setFilterNotMinimized NOTIFY filterNotMinimizedChanged) ++ Q_PROPERTY(bool filterNotMaximized READ filterNotMaximized WRITE setFilterNotMaximized NOTIFY filterNotMaximized) + + Q_PROPERTY(SortMode sortMode READ sortMode WRITE setSortMode NOTIFY sortModeChanged) + Q_PROPERTY(bool separateLaunchers READ separateLaunchers WRITE setSeparateLaunchers NOTIFY separateLaunchersChanged) +@@ -295,6 +296,23 @@ public: + **/ + void setFilterNotMinimized(bool filter); + ++ /** ++ * Whether non-maximized tasks should be filtered. Defaults to ++ * @c false. ++ * ++ * @see setFilterNotMaximized ++ * @returns @c true if non-maximized tasks should be filtered. ++ **/ ++ bool filterNotMaximized() const; ++ ++ /** ++ * Set whether non-maximized tasks should be filtered. ++ * ++ * @see filterNotMaximized ++ * @param filter Whether non-maximized tasks should be filtered. ++ **/ ++ void setFilterNotMaximized(bool filter); ++ + /** + * The sort mode used in sorting tasks. Defaults to SortAlpha. + * +@@ -848,6 +866,7 @@ Q_SIGNALS: + void filterByScreenChanged() const; + void filterByActivityChanged() const; + void filterNotMinimizedChanged() const; ++ void filterNotMaximizedChanged() const; + void sortModeChanged() const; + void separateLaunchersChanged() const; + void launchInPlaceChanged() const; +diff --git a/shell/panelconfigview.cpp b/shell/panelconfigview.cpp +index a331c0bb2..5637f3233 100644 +--- a/shell/panelconfigview.cpp ++++ b/shell/panelconfigview.cpp +@@ -289,6 +289,17 @@ PanelView::VisibilityMode PanelConfigView::visibilityMode() const + return m_panelView->visibilityMode(); + } + ++void PanelConfigView::setOpacityMode(PanelView::OpacityMode mode) ++{ ++ m_panelView->setOpacityMode(mode); ++ emit opacityModeChanged(); ++} ++ ++PanelView::OpacityMode PanelConfigView::opacityMode() const ++{ ++ return m_panelView->opacityMode(); ++} ++ + Plasma::FrameSvg::EnabledBorders PanelConfigView::enabledBorders() const + { + return m_enabledBorders; +diff --git a/shell/panelconfigview.h b/shell/panelconfigview.h +index 8e0abd314..db2af6bf9 100644 +--- a/shell/panelconfigview.h ++++ b/shell/panelconfigview.h +@@ -51,6 +51,7 @@ class PanelConfigView : public PlasmaQuick::ConfigView + { + Q_OBJECT + Q_PROPERTY(PanelView::VisibilityMode visibilityMode READ visibilityMode WRITE setVisibilityMode NOTIFY visibilityModeChanged) ++ Q_PROPERTY(PanelView::OpacityMode opacityMode READ opacityMode WRITE setOpacityMode NOTIFY opacityModeChanged) + Q_PROPERTY(Plasma::FrameSvg::EnabledBorders enabledBorders READ enabledBorders NOTIFY enabledBordersChanged) + + public: +@@ -62,6 +63,9 @@ public: + PanelView::VisibilityMode visibilityMode() const; + void setVisibilityMode(PanelView::VisibilityMode mode); + ++ PanelView::OpacityMode opacityMode() const; ++ void setOpacityMode(PanelView::OpacityMode mode); ++ + Plasma::FrameSvg::EnabledBorders enabledBorders() const; + + protected: +@@ -84,6 +88,7 @@ private Q_SLOTS: + + Q_SIGNALS: + void visibilityModeChanged(); ++ void opacityModeChanged(); + void enabledBordersChanged(); + + private: +diff --git a/shell/panelview.cpp b/shell/panelview.cpp +index 4654a7a72..a699cc84c 100644 +--- a/shell/panelview.cpp ++++ b/shell/panelview.cpp +@@ -64,6 +64,7 @@ PanelView::PanelView(ShellCorona *corona, QScreen *targetScreen, QWindow *parent + , m_alignment(Qt::AlignLeft) + , m_corona(corona) + , m_visibilityMode(NormalPanel) ++ , m_opacityMode(Adaptive) + , m_backgroundHints(Plasma::Types::StandardBackground) + , m_shellSurface(nullptr) + { +@@ -76,8 +77,10 @@ PanelView::PanelView(ShellCorona *corona, QScreen *targetScreen, QWindow *parent + setClearBeforeRendering(true); + setColor(QColor(Qt::transparent)); + setFlags(Qt::FramelessWindowHint | Qt::WindowDoesNotAcceptFocus); ++ updateAdaptiveOpacityEnabled(); + + connect(&m_theme, &Plasma::Theme::themeChanged, this, &PanelView::updateMask); ++ connect(&m_theme, &Plasma::Theme::themeChanged, this, &PanelView::updateAdaptiveOpacityEnabled); + connect(this, &PanelView::backgroundHintsChanged, this, &PanelView::updateMask); + connect(this, &PanelView::backgroundHintsChanged, this, &PanelView::updateEnabledBorders); + // TODO: add finished/componentComplete signal to QuickViewSharedEngine, +@@ -405,6 +408,37 @@ PanelView::VisibilityMode PanelView::visibilityMode() const + return m_visibilityMode; + } + ++PanelView::OpacityMode PanelView::opacityMode() const ++{ ++ if (!m_theme.adaptiveTransparencyEnabled()) { ++ return PanelView::Translucent; ++ } ++ return m_opacityMode; ++} ++ ++bool PanelView::adaptiveOpacityEnabled() ++{ ++ return m_theme.adaptiveTransparencyEnabled(); ++} ++ ++void PanelView::setOpacityMode(PanelView::OpacityMode mode) ++{ ++ if (m_opacityMode != mode) { ++ m_opacityMode = mode; ++ if (config().isValid() && config().parent().isValid()) { ++ config().parent().writeEntry("panelOpacity", (int)mode); ++ m_corona->requestApplicationConfigSync(); ++ } ++ emit opacityModeChanged(); ++ } ++} ++ ++void PanelView::updateAdaptiveOpacityEnabled() ++{ ++ emit opacityModeChanged(); ++ emit adaptiveOpacityEnabledChanged(); ++} ++ + void PanelView::positionPanel() + { + if (!containment()) { +@@ -599,6 +633,7 @@ void PanelView::restore() + // the place for this config key is changed in Plasma 5.9 + // Do NOT use readConfigValueWithFallBack + setVisibilityMode((VisibilityMode)panelConfig.parent().readEntry<int>("panelVisibility", panelConfig.readEntry<int>("panelVisibility", (int)NormalPanel))); ++ setOpacityMode((OpacityMode)readConfigValueWithFallBack("panelOpacity", PanelView::OpacityMode::Adaptive)); + m_initCompleted = true; + resizePanel(); + positionPanel(); +diff --git a/shell/panelview.h b/shell/panelview.h +index 60e4d446e..c312d4907 100644 +--- a/shell/panelview.h ++++ b/shell/panelview.h +@@ -100,6 +100,18 @@ class PanelView : public PlasmaQuick::ContainmentView + */ + Q_PROPERTY(VisibilityMode visibilityMode READ visibilityMode WRITE setVisibilityMode NOTIFY visibilityModeChanged) + ++ /** ++ * Property that determines how a panel's opacity behaves. ++ * ++ * @see OpacityMode ++ */ ++ Q_PROPERTY(OpacityMode opacityMode READ opacityMode WRITE setOpacityMode NOTIFY opacityModeChanged) ++ ++ /** ++ /* Property that determines whether adaptive opacity is used. ++ */ ++ Q_PROPERTY(bool adaptiveOpacityEnabled READ adaptiveOpacityEnabled NOTIFY adaptiveOpacityEnabledChanged) ++ + public: + enum VisibilityMode { + NormalPanel = 0, /** default, always visible panel, the windowmanager reserves a places for it */ +@@ -109,6 +121,14 @@ public: + }; + Q_ENUM(VisibilityMode) + ++ /** Enumeration of possible opacity modes. */ ++ enum OpacityMode { ++ Adaptive = 0, /** The panel will change opacity depending on the presence of a maximized window */ ++ Opaque, /** The panel will always be opaque */ ++ Translucent /** The panel will always be translucent */ ++ }; ++ Q_ENUM(OpacityMode) ++ + explicit PanelView(ShellCorona *corona, QScreen *targetScreen = nullptr, QWindow *parent = nullptr); + ~PanelView() override; + +@@ -147,6 +167,11 @@ public: + VisibilityMode visibilityMode() const; + void setVisibilityMode(PanelView::VisibilityMode mode); + ++ PanelView::OpacityMode opacityMode() const; ++ bool adaptiveOpacityEnabled(); ++ void setOpacityMode(PanelView::OpacityMode mode); ++ void updateAdaptiveOpacityEnabled(); ++ + /** + * @returns the geometry of the panel given a distance + */ +@@ -185,6 +210,8 @@ Q_SIGNALS: + // QWindow does not have a property for screen. Adding this property requires re-implementing the signal + void screenToFollowChanged(QScreen *screen); + void visibilityModeChanged(); ++ void opacityModeChanged(); ++ void adaptiveOpacityEnabledChanged(); + + protected Q_SLOTS: + /** +@@ -235,6 +262,7 @@ private: + ShellCorona *m_corona; + QTimer m_strutsTimer; + VisibilityMode m_visibilityMode; ++ OpacityMode m_opacityMode; + Plasma::Theme m_theme; + QTimer m_positionPaneltimer; + QTimer m_unhideTimer; +-- +GitLab + |