Git commit 8c9c45b8f101f1d90b3084530f9e463a2b5915ab by Nicolas Fella. Committed on 14/04/2023 at 19:06. Pushed by nicolasfella into branch 'master'.
Add option to do nothing when activating window on another desktop Some users prefer this over the existing options. It e.g. allows to open a bunch of links and only then switch to the browser on a different desktop BUG: 464283 M +12 -0 doc/windowbehaviour/index.docbook M +2 -0 src/activation.cpp M +5 -0 src/kcms/options/advanced.ui M +1 -0 src/kwin.kcfg M +2 -1 src/options.h https://invent.kde.org/plasma/kwin/commit/8c9c45b8f101f1d90b3084530f9e463a2b5915ab diff --git a/doc/windowbehaviour/index.docbook b/doc/windowbehaviour/index.docbook index 18b5e8ce77..9b7b7f5742 100644 --- a/doc/windowbehaviour/index.docbook +++ b/doc/windowbehaviour/index.docbook @@ -1190,6 +1190,18 @@ Choose this option if you would like windows to always open on the current Virtu </listitem> </varlistentry> +<varlistentry> +<term><guilabel>Do nothing</guilabel></term> +<listitem> +<para> +The window stays on the desktop it currently is and the current desktop doesn't change. +</para> +<para> +Choose this option if you would like to keep the windows and desktops as they are. +</para> +</listitem> +</varlistentry> + </variablelist> </sect3> diff --git a/src/activation.cpp b/src/activation.cpp index 20e0e5decd..8b273cf426 100644 --- a/src/activation.cpp +++ b/src/activation.cpp @@ -296,6 +296,8 @@ void Workspace::activateWindow(Window *window, bool force) case Options::ActivationDesktopPolicy::BringToCurrentDesktop: window->enterDesktop(VirtualDesktopManager::self()->currentDesktop()); break; + case Options::ActivationDesktopPolicy::DoNothing: + break; } --block_focus; } diff --git a/src/kcms/options/advanced.ui b/src/kcms/options/advanced.ui index ecf3afbcbc..9167397947 100644 --- a/src/kcms/options/advanced.ui +++ b/src/kcms/options/advanced.ui @@ -169,6 +169,11 @@ <string>Bring window to current Virtual Desktop</string> </property> </item> + <item> + <property name="text"> + <string>Do nothing</string> + </property> + </item> </widget> </item> </layout> diff --git a/src/kwin.kcfg b/src/kwin.kcfg index 7b9190633a..46bac99242 100644 --- a/src/kwin.kcfg +++ b/src/kwin.kcfg @@ -136,6 +136,7 @@ <choices name="KWin::Options::ActivationDesktopPolicy"> <choice name="SwitchToOtherDesktop"/> <choice name="BringToCurrentDesktop"/> + <choice name="DoNothing"/> </choices> <default>KWin::Options::ActivationDesktopPolicy::SwitchToOtherDesktop</default> </entry> diff --git a/src/options.h b/src/options.h index 78730a7b79..a78255ce08 100644 --- a/src/options.h +++ b/src/options.h @@ -360,7 +360,8 @@ public: enum ActivationDesktopPolicy { SwitchToOtherDesktop, - BringToCurrentDesktop + BringToCurrentDesktop, + DoNothing, }; Q_ENUM(ActivationDesktopPolicy)
