diff options
Diffstat (limited to 'kde-plasma/kwin')
-rw-r--r-- | kde-plasma/kwin/Manifest | 7 | ||||
-rw-r--r-- | kde-plasma/kwin/files/kwin-5.19.5-safe-removal-of-X11-event-filters.patch | 162 | ||||
-rw-r--r-- | kde-plasma/kwin/files/kwin-5.20.5-keep-focuschain-behavior-w-minimised.patch | 154 | ||||
-rw-r--r-- | kde-plasma/kwin/files/kwin-5.20.5-revert-new-focuschain-w-minimised.patch | 65 | ||||
-rw-r--r-- | kde-plasma/kwin/kwin-5.19.5-r1.ebuild | 113 | ||||
-rw-r--r-- | kde-plasma/kwin/kwin-5.20.5-r1.ebuild (renamed from kde-plasma/kwin/kwin-5.20.5.ebuild) | 20 |
6 files changed, 240 insertions, 281 deletions
diff --git a/kde-plasma/kwin/Manifest b/kde-plasma/kwin/Manifest index 944472e75bef..81f7aefa5a94 100644 --- a/kde-plasma/kwin/Manifest +++ b/kde-plasma/kwin/Manifest @@ -1,7 +1,6 @@ AUX kwin-5.16.80-gstreamer-optional.patch 963 BLAKE2B 7a65b1e36ba1261cd97c9cca8cca39a03f932ef23780c9d5f1104bdac665744dd03878a5b7f1ccc20dccab42facb8d97474c31548b602db0debb27e5490ac76e SHA512 2b1de2ceeeed51bcc691273caea969243ef08ced929030daa94c0f19bad2fb31a507e3efbb9018833a8bd3b66850380dfbefb9018fa39e00664a1295b9482183 -AUX kwin-5.19.5-safe-removal-of-X11-event-filters.patch 5327 BLAKE2B fd2982a92f2a2bdbdb2e718fcb4e3293245470877aa3021eb0b8da66a5018e79a68bf34034689919a156e8c8de1f1686797c3e355cb96330dfcd559ab27d2e43 SHA512 ffeb77e0f718e06a605ffd82708228ab63161d449ec21067eafc9d34b119bfcb80d9bb608c1e7cacd1bda0786618c475a2cf7977b94e7475482caa281000debe -DIST kwin-5.19.5.tar.xz 6260188 BLAKE2B bcf3c8afc00af0df8cddeb49396bd23df6178e379ac4c3ba3c547a2c602d309202a72136b69b83f729434fc5691ba24699cf3f44d47b2c033623bca5d551bdb1 SHA512 97ad0096066d99b4bba3089416a6d3744b6f83d82a004caa8762b420cad34cac4221b3535678d4c6f1bcb43c4d97db56be5ac68c4ac501dc168f4472a6c0dad5 +AUX kwin-5.20.5-keep-focuschain-behavior-w-minimised.patch 5670 BLAKE2B 52c854a9fcc850f29a517eec5d6ced50ad840ce54f124ccd6caecb6446a67950463673e264d17af784d33b9cc44435a01e176a75aac285ff8169b6117c137261 SHA512 898105b424df78ca043d854bd811a112614b05d8df484705726c91149b47f505b6ffee494eb4cad81fe7ac10e922715e8d2b88ba11517d66c125c93070e5fd19 +AUX kwin-5.20.5-revert-new-focuschain-w-minimised.patch 2199 BLAKE2B 66835e1af9193c29735fe1f676e344927d1ed769b17e54a4b70abdd9d253c2eff22e0ea0f65fc2674c90868f008cce258b3064545619b1ed0fe36929194f0e70 SHA512 8b9c693c4293816a92b9d91964834bd52cb217c4369af442de1b0a19e107112941c6c0e982dd2757d55e861da6f00a8a95db5d95c9e2b7951f635516f149ab13 DIST kwin-5.20.5.tar.xz 6329444 BLAKE2B e80890c1a353b3b8a15659ea3f88e08b84f29ee863aa41ed99758e93008def940450abc2ad66bc2f5d4c9cd391a3d6ddb21eb2ab79d3696b7373f8ae0fdb6d89 SHA512 e9186dc71e3e9b913314a83fe9413b956d61d633f0e8418fd47d82178c6f50eb75b03299c00495af351b0951df23057500ef28123123583c291a0c29ea3414f1 -EBUILD kwin-5.19.5-r1.ebuild 3116 BLAKE2B 705a3a61df8bf2b0c1e334b7aba8690ad5478f64f2956b1e3c8a863b8ac0773b95d69b75c94d23f91af0e6562f071d2a3a642257f07f041c9bf59fb58d3b8072 SHA512 ef47a3b4851d18f6dcc4615f290b98c87ce16a9655f08efc42f1f993878229f04ad7e591741baac5fb17efeceff7dae33a918115f144319b1818819db96ea67b -EBUILD kwin-5.20.5.ebuild 3373 BLAKE2B 4bff40ee62a6cc208c58321448539c6a5ef7a77dbcc114deaa80801bb8d03151008eae09ebfa240bfff1f14310a50a2b8172860b5a8cc88916f24d85b994b337 SHA512 3db677dbe8f191cf94b6bb07d919bac293dc1e599b524a609a0def4d6b006cd200e9ca3b081697b18b007aa55e27dfca6e0c7c80849961a8b1e9f91f31688cec +EBUILD kwin-5.20.5-r1.ebuild 3941 BLAKE2B 99593d2bc2ae9dd12ec340f2a610e23ae7870d2f88d2881707b65bd60efcc022f32c38a0420cc77b4dfa2ca542410040ef8efbb96d771af2f2743f6bd1d2238b SHA512 afacac18c55ad2325828a0d9387b024ff72884eb1de2e42fcb8494a978ec422d10c85539f2f986c3320e66a41ea85d3d3abe93d69c3e62de5373dc62f8aeeff2 MISC metadata.xml 443 BLAKE2B e972639d031b3e32681af007b9d5daa44167bdbcb9b83ff557e7bcde84b588403240021f8880eb1cc852fbae37d9e8c5ffb392fa1aff19f2075d32876f5082af SHA512 cf0743ac8f3ed8a2ec354653cfbec6bbd5ef191227e46d5d56119f7c0b3ac5a388cfef44f7ce5f2ba9079f3eee897b29b52b726f4e99ee50e29cbb584ed19b3c diff --git a/kde-plasma/kwin/files/kwin-5.19.5-safe-removal-of-X11-event-filters.patch b/kde-plasma/kwin/files/kwin-5.19.5-safe-removal-of-X11-event-filters.patch deleted file mode 100644 index 7eeccf6e8c5f..000000000000 --- a/kde-plasma/kwin/files/kwin-5.19.5-safe-removal-of-X11-event-filters.patch +++ /dev/null @@ -1,162 +0,0 @@ -From c5880833d94330d022c4b6fc84c175aadeaf9632 Mon Sep 17 00:00:00 2001 -From: Vlad Zahorodnii <vlad.zahorodnii@kde.org> -Date: Tue, 22 Sep 2020 08:53:17 +0000 -Subject: [PATCH] x11: Make removal of X11 event filters safe - -If an X11 event filter has been activated and it unregisters another X11 -event filter, then the window manager may crash because the foreach macro -in Workspace::workspaceEvent() makes a copy of m_genericEventFilters or -m_eventFilters and we can call the event() method for an already defunct -filter. - -With this change, X11 event filters can be safely removed and installed -at any particular moment. - -BUG: 423319 - - -(cherry picked from commit a433fb08a3a9255802405a17dd4c8270c68fcb25) ---- - events.cpp | 52 +++++++++++++++++++++++++++++++++++++++++---------- - workspace.cpp | 10 ++++++++++ - workspace.h | 17 +++++++++++++++-- - 3 files changed, 67 insertions(+), 12 deletions(-) - -diff --git a/events.cpp b/events.cpp -index eb3572d13..2e8885d76 100644 ---- a/events.cpp -+++ b/events.cpp -@@ -165,18 +165,34 @@ QVector<QByteArray> s_xcbEerrors({ - - void Workspace::registerEventFilter(X11EventFilter *filter) - { -- if (filter->isGenericEvent()) -- m_genericEventFilters.append(filter); -- else -- m_eventFilters.append(filter); -+ if (filter->isGenericEvent()) { -+ m_genericEventFilters.append(new X11EventFilterContainer(filter)); -+ } else { -+ m_eventFilters.append(new X11EventFilterContainer(filter)); -+ } -+} -+ -+static X11EventFilterContainer *takeEventFilter(X11EventFilter *eventFilter, -+ QList<QPointer<X11EventFilterContainer>> &list) -+{ -+ for (int i = 0; i < list.count(); ++i) { -+ X11EventFilterContainer *container = list.at(i); -+ if (container->filter() == eventFilter) { -+ return list.takeAt(i); -+ } -+ } -+ return nullptr; - } - - void Workspace::unregisterEventFilter(X11EventFilter *filter) - { -- if (filter->isGenericEvent()) -- m_genericEventFilters.removeOne(filter); -- else -- m_eventFilters.removeOne(filter); -+ X11EventFilterContainer *container = nullptr; -+ if (filter->isGenericEvent()) { -+ container = takeEventFilter(filter, m_genericEventFilters); -+ } else { -+ container = takeEventFilter(filter, m_eventFilters); -+ } -+ delete container; - } - - -@@ -219,13 +235,29 @@ bool Workspace::workspaceEvent(xcb_generic_event_t *e) - if (eventType == XCB_GE_GENERIC) { - xcb_ge_generic_event_t *ge = reinterpret_cast<xcb_ge_generic_event_t *>(e); - -- foreach (X11EventFilter *filter, m_genericEventFilters) { -+ // We need to make a shadow copy of the event filter list because an activated event -+ // filter may mutate it by removing or installing another event filter. -+ const auto eventFilters = m_genericEventFilters; -+ -+ for (X11EventFilterContainer *container : eventFilters) { -+ if (!container) { -+ continue; -+ } -+ X11EventFilter *filter = container->filter(); - if (filter->extension() == ge->extension && filter->genericEventTypes().contains(ge->event_type) && filter->event(e)) { - return true; - } - } - } else { -- foreach (X11EventFilter *filter, m_eventFilters) { -+ // We need to make a shadow copy of the event filter list because an activated event -+ // filter may mutate it by removing or installing another event filter. -+ const auto eventFilters = m_eventFilters; -+ -+ for (X11EventFilterContainer *container : eventFilters) { -+ if (!container) { -+ continue; -+ } -+ X11EventFilter *filter = container->filter(); - if (filter->eventTypes().contains(eventType) && filter->event(e)) { - return true; - } -diff --git a/workspace.cpp b/workspace.cpp -index a87a622e9..fd3634b16 100644 ---- a/workspace.cpp -+++ b/workspace.cpp -@@ -66,6 +66,16 @@ namespace KWin - extern int screen_number; - extern bool is_multihead; - -+X11EventFilterContainer::X11EventFilterContainer(X11EventFilter *filter) -+ : m_filter(filter) -+{ -+} -+ -+X11EventFilter *X11EventFilterContainer::filter() const -+{ -+ return m_filter; -+} -+ - ColorMapper::ColorMapper(QObject *parent) - : QObject(parent) - , m_default(kwinApp()->x11DefaultScreen()->default_colormap) -diff --git a/workspace.h b/workspace.h -index 489d7bae4..61fb215a8 100644 ---- a/workspace.h -+++ b/workspace.h -@@ -55,6 +55,19 @@ class X11Client; - class X11EventFilter; - enum class Predicate; - -+class X11EventFilterContainer : public QObject -+{ -+ Q_OBJECT -+ -+public: -+ explicit X11EventFilterContainer(X11EventFilter *filter); -+ -+ X11EventFilter *filter() const; -+ -+private: -+ X11EventFilter *m_filter; -+}; -+ - class KWIN_EXPORT Workspace : public QObject - { - Q_OBJECT -@@ -654,8 +667,8 @@ private: - - QScopedPointer<KillWindow> m_windowKiller; - -- QList<X11EventFilter *> m_eventFilters; -- QList<X11EventFilter *> m_genericEventFilters; -+ QList<QPointer<X11EventFilterContainer>> m_eventFilters; -+ QList<QPointer<X11EventFilterContainer>> m_genericEventFilters; - QScopedPointer<X11EventFilter> m_movingClientFilter; - QScopedPointer<X11EventFilter> m_syncAlarmFilter; - --- -GitLab - diff --git a/kde-plasma/kwin/files/kwin-5.20.5-keep-focuschain-behavior-w-minimised.patch b/kde-plasma/kwin/files/kwin-5.20.5-keep-focuschain-behavior-w-minimised.patch new file mode 100644 index 000000000000..9677fc76488e --- /dev/null +++ b/kde-plasma/kwin/files/kwin-5.20.5-keep-focuschain-behavior-w-minimised.patch @@ -0,0 +1,154 @@ +From b3e9c819537cf292d9b1c4d19c5ce7adde00158e Mon Sep 17 00:00:00 2001 +From: Nate Graham <nate@kde.org> +Date: Tue, 20 Oct 2020 14:15:46 -0600 +Subject: [PATCH] [focuschain/task switcher] Add hidden option to govern + repositioning minimized windows + +Since some people apparently liked the old behavior of moving minimized +windows to the end of the focus chain, let's let them have it if they +set a hidden config option: + +`MoveMinimizedWindowsToEndOfTabBoxFocusChain=true` in the `[TabBox]` group +of the kwinrc file. + +We can add a UI for it later if needed. + +BUG: 427840 +FIXED-IN: 5.21 +--- + abstract_client.cpp | 6 +++++- + focuschain.cpp | 16 ++++++++++------ + kwin.kcfg | 3 +++ + options.cpp | 11 +++++++++++ + options.h | 6 ++++++ + 5 files changed, 35 insertions(+), 7 deletions(-) + +diff --git a/abstract_client.cpp b/abstract_client.cpp +index e44da4725..01f3081f8 100644 +--- a/abstract_client.cpp ++++ b/abstract_client.cpp +@@ -703,7 +703,11 @@ void AbstractClient::minimize(bool avoid_animation) + doMinimize(); + + updateWindowRules(Rules::Minimize); +- FocusChain::self()->update(this, FocusChain::MakeFirstMinimized); ++ ++ if (options->moveMinimizedWindowsToEndOfTabBoxFocusChain()) { ++ FocusChain::self()->update(this, FocusChain::MakeFirstMinimized); ++ } ++ + // TODO: merge signal with s_minimized + addWorkspaceRepaint(visibleRect()); + emit clientMinimized(this, !avoid_animation); +diff --git a/focuschain.cpp b/focuschain.cpp +index a68e6d3c6..347df3066 100644 +--- a/focuschain.cpp ++++ b/focuschain.cpp +@@ -227,14 +227,18 @@ AbstractClient *FocusChain::nextForDesktop(AbstractClient *reference, uint deskt + void FocusChain::makeFirstInChain(AbstractClient *client, Chain &chain) + { + chain.removeAll(client); +- if (client->isMinimized()) { // add it before the first minimized ... +- for (int i = chain.count()-1; i >= 0; --i) { +- if (chain.at(i)->isMinimized()) { +- chain.insert(i+1, client); +- return; ++ if (options->moveMinimizedWindowsToEndOfTabBoxFocusChain()) { ++ if (client->isMinimized()) { // add it before the first minimized ... ++ for (int i = chain.count()-1; i >= 0; --i) { ++ if (chain.at(i)->isMinimized()) { ++ chain.insert(i+1, client); ++ return; ++ } + } ++ chain.prepend(client); // ... or at end of chain ++ } else { ++ chain.append(client); + } +- chain.prepend(client); // ... or at end of chain + } else { + chain.append(client); + } +diff --git a/kwin.kcfg b/kwin.kcfg +index 0b59606e3..2b06efe52 100644 +--- a/kwin.kcfg ++++ b/kwin.kcfg +@@ -295,6 +295,9 @@ + <entry name="LayoutName" type="String"> + <default>thumbnails</default> + </entry> ++ <entry name="MoveMinimizedWindowsToEndOfTabBoxFocusChain" type="Bool"> ++ <default>false</default> ++ </entry> + </group> + <group name="KDE"> + <entry name="AnimationDurationFactor" type="Double"> +diff --git a/options.cpp b/options.cpp +index 4bce7ee39..8014f8b78 100644 +--- a/options.cpp ++++ b/options.cpp +@@ -111,6 +111,7 @@ Options::Options(QObject *parent) + , m_glPreferBufferSwap(Options::defaultGlPreferBufferSwap()) + , m_glPlatformInterface(Options::defaultGlPlatformInterface()) + , m_windowsBlockCompositing(true) ++ , m_MoveMinimizedWindowsToEndOfTabBoxFocusChain(false) + , OpTitlebarDblClick(Options::defaultOperationTitlebarDblClick()) + , CmdActiveTitlebar1(Options::defaultCommandActiveTitlebar1()) + , CmdActiveTitlebar2(Options::defaultCommandActiveTitlebar2()) +@@ -679,6 +680,15 @@ void Options::setWindowsBlockCompositing(bool value) + emit windowsBlockCompositingChanged(); + } + ++void Options::setMoveMinimizedWindowsToEndOfTabBoxFocusChain(bool value) ++{ ++ if (m_MoveMinimizedWindowsToEndOfTabBoxFocusChain == value) { ++ return; ++ } ++ m_MoveMinimizedWindowsToEndOfTabBoxFocusChain = value; ++ ++} ++ + void Options::setGlPreferBufferSwap(char glPreferBufferSwap) + { + if (glPreferBufferSwap == 'a') { +@@ -849,6 +859,7 @@ void Options::syncFromKcfgc() + setElectricBorderTiling(m_settings->electricBorderTiling()); + setElectricBorderCornerRatio(m_settings->electricBorderCornerRatio()); + setWindowsBlockCompositing(m_settings->windowsBlockCompositing()); ++ setMoveMinimizedWindowsToEndOfTabBoxFocusChain(m_settings->moveMinimizedWindowsToEndOfTabBoxFocusChain()); + + } + +diff --git a/options.h b/options.h +index 6d72017d3..0834f314e 100644 +--- a/options.h ++++ b/options.h +@@ -590,6 +590,10 @@ public: + return m_windowsBlockCompositing; + } + ++ bool moveMinimizedWindowsToEndOfTabBoxFocusChain() const { ++ return m_MoveMinimizedWindowsToEndOfTabBoxFocusChain; ++ } ++ + QStringList modifierOnlyDBusShortcut(Qt::KeyboardModifier mod) const; + + // setters +@@ -651,6 +655,7 @@ public: + void setGlPreferBufferSwap(char glPreferBufferSwap); + void setGlPlatformInterface(OpenGLPlatformInterface interface); + void setWindowsBlockCompositing(bool set); ++ void setMoveMinimizedWindowsToEndOfTabBoxFocusChain(bool set); + + // default values + static WindowOperation defaultOperationTitlebarDblClick() { +@@ -881,6 +886,7 @@ private: + GlSwapStrategy m_glPreferBufferSwap; + OpenGLPlatformInterface m_glPlatformInterface; + bool m_windowsBlockCompositing; ++ bool m_MoveMinimizedWindowsToEndOfTabBoxFocusChain; + + WindowOperation OpTitlebarDblClick; + WindowOperation opMaxButtonRightClick = defaultOperationMaxButtonRightClick(); +-- +GitLab diff --git a/kde-plasma/kwin/files/kwin-5.20.5-revert-new-focuschain-w-minimised.patch b/kde-plasma/kwin/files/kwin-5.20.5-revert-new-focuschain-w-minimised.patch new file mode 100644 index 000000000000..7de71bf959c0 --- /dev/null +++ b/kde-plasma/kwin/files/kwin-5.20.5-revert-new-focuschain-w-minimised.patch @@ -0,0 +1,65 @@ +From 75fded6f11ed645b0e25bf42b05fa57b8a675197 Mon Sep 17 00:00:00 2001 +From: Nate Graham <nate@kde.org> +Date: Tue, 20 Oct 2020 14:05:33 -0600 +Subject: [PATCH] Revert "[focuschain/task switcher] Remove special handling + for minimized windows" + +This reverts commit cc862fa674d3407f516a89b8543acea04aa8b37d. + +It turns out that some people like this behavior and we've received +various user complaints about it. +--- + abstract_client.cpp | 1 + + focuschain.cpp | 12 +++++++++++- + focuschain.h | 3 ++- + 3 files changed, 14 insertions(+), 2 deletions(-) + +diff --git a/abstract_client.cpp b/abstract_client.cpp +index 35b7fcb61..e44da4725 100644 +--- a/abstract_client.cpp ++++ b/abstract_client.cpp +@@ -703,6 +703,7 @@ void AbstractClient::minimize(bool avoid_animation) + doMinimize(); + + updateWindowRules(Rules::Minimize); ++ FocusChain::self()->update(this, FocusChain::MakeFirstMinimized); + // TODO: merge signal with s_minimized + addWorkspaceRepaint(visibleRect()); + emit clientMinimized(this, !avoid_animation); +diff --git a/focuschain.cpp b/focuschain.cpp +index 66d209709..a68e6d3c6 100644 +--- a/focuschain.cpp ++++ b/focuschain.cpp +@@ -227,7 +227,17 @@ AbstractClient *FocusChain::nextForDesktop(AbstractClient *reference, uint deskt + void FocusChain::makeFirstInChain(AbstractClient *client, Chain &chain) + { + chain.removeAll(client); +- chain.append(client); ++ if (client->isMinimized()) { // add it before the first minimized ... ++ for (int i = chain.count()-1; i >= 0; --i) { ++ if (chain.at(i)->isMinimized()) { ++ chain.insert(i+1, client); ++ return; ++ } ++ } ++ chain.prepend(client); // ... or at end of chain ++ } else { ++ chain.append(client); ++ } + } + + void FocusChain::makeLastInChain(AbstractClient *client, Chain &chain) +diff --git a/focuschain.h b/focuschain.h +index 8baf3ea32..9a7c7e25d 100644 +--- a/focuschain.h ++++ b/focuschain.h +@@ -41,7 +41,8 @@ class FocusChain : public QObject + enum Change { + MakeFirst, + MakeLast, +- Update ++ Update, ++ MakeFirstMinimized = MakeFirst + }; + ~FocusChain() override; + /** diff --git a/kde-plasma/kwin/kwin-5.19.5-r1.ebuild b/kde-plasma/kwin/kwin-5.19.5-r1.ebuild deleted file mode 100644 index fc1182510000..000000000000 --- a/kde-plasma/kwin/kwin-5.19.5-r1.ebuild +++ /dev/null @@ -1,113 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -ECM_HANDBOOK="optional" -ECM_TEST="optional" -KFMIN=5.71.0 -PVCUT=$(ver_cut 1-3) -QTMIN=5.14.2 -VIRTUALX_REQUIRED="test" -inherit ecm kde.org - -DESCRIPTION="Flexible, composited Window Manager for windowing systems on Linux" - -LICENSE="GPL-2+" -SLOT="5" -KEYWORDS="amd64 ~arm arm64 ~ppc64 x86" -IUSE="caps gles2-only multimedia" - -COMMON_DEPEND=" - >=dev-libs/libinput-1.14 - >=dev-libs/wayland-1.2 - >=dev-qt/qtdbus-${QTMIN}:5 - >=dev-qt/qtdeclarative-${QTMIN}:5 - >=dev-qt/qtgui-${QTMIN}:5=[gles2-only=] - >=dev-qt/qtscript-${QTMIN}:5 - >=dev-qt/qtsensors-${QTMIN}:5 - >=dev-qt/qtwidgets-${QTMIN}:5 - >=dev-qt/qtx11extras-${QTMIN}:5 - >=kde-frameworks/kactivities-${KFMIN}:5 - >=kde-frameworks/kauth-${KFMIN}:5 - >=kde-frameworks/kcmutils-${KFMIN}:5 - >=kde-frameworks/kcompletion-${KFMIN}:5 - >=kde-frameworks/kconfig-${KFMIN}:5 - >=kde-frameworks/kconfigwidgets-${KFMIN}:5 - >=kde-frameworks/kcoreaddons-${KFMIN}:5 - >=kde-frameworks/kcrash-${KFMIN}:5 - >=kde-frameworks/kdeclarative-${KFMIN}:5 - >=kde-frameworks/kglobalaccel-${KFMIN}:5= - >=kde-frameworks/ki18n-${KFMIN}:5 - >=kde-frameworks/kiconthemes-${KFMIN}:5 - >=kde-frameworks/kidletime-${KFMIN}:5= - >=kde-frameworks/kio-${KFMIN}:5 - >=kde-frameworks/knewstuff-${KFMIN}:5 - >=kde-frameworks/knotifications-${KFMIN}:5 - >=kde-frameworks/kpackage-${KFMIN}:5 - >=kde-frameworks/kservice-${KFMIN}:5 - >=kde-frameworks/ktextwidgets-${KFMIN}:5 - >=kde-frameworks/kwayland-${KFMIN}:5 - >=kde-frameworks/kwidgetsaddons-${KFMIN}:5 - >=kde-frameworks/kwindowsystem-${KFMIN}:5[X] - >=kde-frameworks/kxmlgui-${KFMIN}:5 - >=kde-frameworks/plasma-${KFMIN}:5 - >=kde-plasma/breeze-${PVCUT}:5 - >=kde-plasma/kdecoration-${PVCUT}:5 - >=kde-plasma/kscreenlocker-${PVCUT}:5 - >=kde-plasma/kwayland-server-${PVCUT}:5 - media-libs/fontconfig - media-libs/freetype - media-libs/libepoxy - media-libs/mesa[egl,gbm,wayland,X(+)] - virtual/libudev:= - x11-libs/libICE - x11-libs/libSM - x11-libs/libX11 - x11-libs/libXi - x11-libs/libdrm - >=x11-libs/libxcb-1.10 - >=x11-libs/libxkbcommon-0.7.0 - x11-libs/xcb-util-cursor - x11-libs/xcb-util-image - x11-libs/xcb-util-keysyms - x11-libs/xcb-util-wm - caps? ( sys-libs/libcap ) - gles2-only? ( media-libs/mesa[gles2] ) -" -# TODO: sys-apps/hwdata? not packaged yet; commit 33a1777a, Gentoo-bug 717216 -RDEPEND="${COMMON_DEPEND} - >=dev-qt/qtquickcontrols-${QTMIN}:5 - >=dev-qt/qtquickcontrols2-${QTMIN}:5 - >=dev-qt/qtvirtualkeyboard-${QTMIN}:5 - >=kde-frameworks/kirigami-${KFMIN}:5 - >=kde-frameworks/kitemmodels-${KFMIN}:5[qml] - multimedia? ( >=dev-qt/qtmultimedia-${QTMIN}:5[gstreamer,qml] ) -" -DEPEND="${COMMON_DEPEND} - >=dev-qt/designer-${QTMIN}:5 - >=dev-qt/qtconcurrent-${QTMIN}:5 - x11-base/xorg-proto -" -PDEPEND=" - >=kde-plasma/kde-cli-tools-${PVCUT}:5 -" - -RESTRICT+=" test" - -PATCHES=( - "${FILESDIR}"/${P}-safe-removal-of-X11-event-filters.patch # KDE-Bug 423319 -) - -src_prepare() { - ecm_src_prepare - use multimedia || eapply "${FILESDIR}/${PN}-5.16.80-gstreamer-optional.patch" -} - -src_configure() { - local mycmakeargs=( - $(cmake_use_find_package caps Libcap) - ) - - ecm_src_configure -} diff --git a/kde-plasma/kwin/kwin-5.20.5.ebuild b/kde-plasma/kwin/kwin-5.20.5-r1.ebuild index 1d4dd06f3132..eb5a94484cca 100644 --- a/kde-plasma/kwin/kwin-5.20.5.ebuild +++ b/kde-plasma/kwin/kwin-5.20.5-r1.ebuild @@ -15,9 +15,11 @@ DESCRIPTION="Flexible, composited Window Manager for windowing systems on Linux" LICENSE="GPL-2+" SLOT="5" -KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~x86" +KEYWORDS="amd64 ~arm arm64 ~ppc64 x86" IUSE="accessibility caps gles2-only multimedia screencast" +RESTRICT+=" test" + COMMON_DEPEND=" >=dev-libs/libinput-1.14 >=dev-libs/wayland-1.2 @@ -95,7 +97,10 @@ PDEPEND=" >=kde-plasma/kde-cli-tools-${PVCUT}:5 " -RESTRICT+=" test" +PATCHES=( + "${FILESDIR}/${P}-revert-new-focuschain-w-minimised.patch" # KDE-Bug 427840 + "${FILESDIR}/${P}-keep-focuschain-behavior-w-minimised.patch" # Plasma/5.21 +) src_prepare() { ecm_src_prepare @@ -116,3 +121,14 @@ src_configure() { ecm_src_configure } + +pkg_postinst() { + ecm_pkg_postinst + elog "In Plasma 5.20, default behavior of the Task Switcher to move minimised" + elog "windows to the end of the list was changed so that it remains in the" + elog "original order. To revert to the well established behavior:" + elog + elog " - Edit ~/.config/kwinrc" + elog " - Find [TabBox] section" + elog " - Add \"MoveMinimizedWindowsToEndOfTabBoxFocusChain=true\"" +} |