From f2dd6d02b12edc4c241289d5cd32e4fb153591ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sun, 19 May 2013 14:23:49 +0200 Subject: [PATCH] add previous screen shortcuts REVIEW: 110521 BUG: 303083 FIXED-IN: 4.11 --- kwinbindings.cpp | 4 +++- useractions.cpp | 13 +++++++++++++ workspace.h | 2 ++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/kwinbindings.cpp b/kwinbindings.cpp index c85b42e2d..24fbbca6b 100644 --- a/kwinbindings.cpp +++ b/kwinbindings.cpp @@ -151,6 +151,7 @@ for (int i = 0; i < 8; ++i) { DEF3(I18N_NOOP("Window to Screen %1"), 0, slotWindowToScreen(), i); } DEF(I18N_NOOP("Window to Next Screen"), 0, slotWindowToNextScreen()); +DEF(I18N_NOOP("Window to Previous Screen"), 0, slotWindowToPrevScreen()); DEF(I18N_NOOP("Show Desktop"), 0, slotToggleShowDesktop()); for (int i = 0; i < 8; ++i) { @@ -158,13 +159,14 @@ for (int i = 0; i < 8; ++i) { } DEF(I18N_NOOP("Switch to Next Screen"), 0, slotSwitchToNextScreen()); +DEF(I18N_NOOP("Switch to Previous Screen"), 0, slotSwitchToPrevScreen()); a = actionCollection->addAction("Group:Miscellaneous"); a->setText(i18n("Miscellaneous")); DEF(I18N_NOOP("Kill Window"), Qt::CTRL + Qt::ALT + Qt::Key_Escape, slotKillWindow()); DEF(I18N_NOOP("Block Global Shortcuts"), 0, slotDisableGlobalShortcuts()); DEF(I18N_NOOP("Suspend Compositing"), Qt::SHIFT + Qt::ALT + Qt::Key_F12, slotToggleCompositing()); -DEF(I18N_NOOP("Invert Screen Colors"), 0, slotInvertScreen()); +DEF(I18N_NOOP("Invert Screen Colors"), 0, slotInvertScreen()); #undef DEF #undef DEF2 diff --git a/useractions.cpp b/useractions.cpp index c6ed61d58..a38ebfc88 100755 --- a/useractions.cpp +++ b/useractions.cpp @@ -1415,6 +1415,13 @@ void Workspace::slotSwitchToNextScreen() setCurrentScreen((screens()->current() + 1) % screens()->count()); } +void Workspace::slotSwitchToPrevScreen() +{ + if (screenSwitchImpossible()) + return; + setCurrentScreen((screens()->current() + screens()->count() - 1) % screens()->count()); +} + void Workspace::slotWindowToScreen() { if (USABLE_ACTIVE_CLIENT) { @@ -1433,6 +1440,12 @@ void Workspace::slotWindowToNextScreen() sendClientToScreen(active_client, (active_client->screen() + 1) % screens()->count()); } +void Workspace::slotWindowToPrevScreen() +{ + if (USABLE_ACTIVE_CLIENT) + sendClientToScreen(active_client, (active_client->screen() + screens()->count() - 1) % screens()->count()); +} + /*! Maximizes the popup client */ diff --git a/workspace.h b/workspace.h index ffa30958b..53b7468fb 100644 --- a/workspace.h +++ b/workspace.h @@ -305,6 +305,8 @@ public slots: void slotWindowToScreen(); void slotSwitchToNextScreen(); void slotWindowToNextScreen(); + void slotSwitchToPrevScreen(); + void slotWindowToPrevScreen(); void slotToggleShowDesktop(); void slotWindowMaximize();