From 7527d160b979ee6a88c87b6e82f756965cf86501 Mon Sep 17 00:00:00 2001 From: Darrell Anderson Date: Sat, 31 Mar 2012 17:16:39 -0500 Subject: Add option to control pager applet cycling with the mouse wheel. This resolves bug report 908. Thanks to Calvin Morrison for the patch! --- kicker/applets/minipager/pagerapplet.cpp | 14 +++++++++++--- kicker/applets/minipager/pagerapplet.h | 4 +++- kicker/applets/minipager/pagersettings.kcfg | 7 ++++++- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/kicker/applets/minipager/pagerapplet.cpp b/kicker/applets/minipager/pagerapplet.cpp index 4379da6c0..cf9507700 100644 --- a/kicker/applets/minipager/pagerapplet.cpp +++ b/kicker/applets/minipager/pagerapplet.cpp @@ -442,6 +442,10 @@ void KMiniPager::wheelEvent( TQWheelEvent* e ) { int newDesk; int desktops = KWin::numberOfDesktops(); + + + if(cycleWindow()){ + if (m_twin->numberOfViewports(0).width() * m_twin->numberOfViewports(0).height() > 1 ) desktops = m_twin->numberOfViewports(0).width() * m_twin->numberOfViewports(0).height(); if (e->delta() < 0) @@ -452,8 +456,9 @@ void KMiniPager::wheelEvent( TQWheelEvent* e ) { newDesk = (desktops + m_curDesk - 2) % desktops + 1; } - + slotButtonSelected(newDesk); + } } void KMiniPager::drawButtons() @@ -729,6 +734,7 @@ void KMiniPager::aboutToShowContextMenu() showMenu->insertItem(i18n("&Window Thumbnails"), WindowThumbnails); showMenu->insertItem(i18n("&Window Icons"), WindowIcons); + showMenu->insertItem(i18n("&Cycle on Wheel"), Cycle); showMenu->insertTitle(i18n("Text Label")); showMenu->insertItem(i18n("Desktop N&umber"), @@ -760,6 +766,7 @@ void KMiniPager::aboutToShowContextMenu() m_contextMenu->setItemChecked(WindowThumbnails, m_settings->preview()); m_contextMenu->setItemChecked(WindowIcons, m_settings->icons()); + m_contextMenu->setItemChecked(Cycle, m_settings->cycle()); m_contextMenu->setItemEnabled(WindowIcons, m_settings->preview()); m_contextMenu->setItemEnabled(RenameDesktop, m_settings->labelType() == @@ -812,11 +819,12 @@ void KMiniPager::contextMenuActivated(int result) m_settings->setPreview(!m_settings->preview()); TaskManager::the()->trackGeometry(); break; - + case Cycle: + m_settings->setCycle(!m_settings->cycle()); + break; case WindowIcons: m_settings->setIcons(!m_settings->icons()); break; - case PagerSettings::EnumBackgroundType::BgPlain + bgOffset: m_settings->setBackgroundType(PagerSettings::EnumBackgroundType::BgPlain); break; diff --git a/kicker/applets/minipager/pagerapplet.h b/kicker/applets/minipager/pagerapplet.h index 02f72198e..9aa370016 100644 --- a/kicker/applets/minipager/pagerapplet.h +++ b/kicker/applets/minipager/pagerapplet.h @@ -64,15 +64,17 @@ public: void setActive( WId active ) { m_activeWindow = active; } WId activeWindow() { return m_activeWindow; } - enum ConfigOptions { LaunchExtPager = 96, WindowThumbnails, + enum ConfigOptions { LaunchExtPager = 96, WindowThumbnails, Cycle, WindowIcons, ConfigureDesktops, RenameDesktop }; int labelType() const { return m_settings->labelType(); } int bgType() const { return m_settings->backgroundType(); } bool desktopPreview() const { return m_settings->preview(); } + bool cycleWindow() const { return m_settings->cycle(); } bool windowIcons() const { return m_settings->icons(); } + Orientation orientation() const { return KPanelApplet::orientation(); } Direction popupDirection() { return KPanelApplet::popupDirection(); } diff --git a/kicker/applets/minipager/pagersettings.kcfg b/kicker/applets/minipager/pagersettings.kcfg index 8a26bdc86..3a821f20a 100644 --- a/kicker/applets/minipager/pagersettings.kcfg +++ b/kicker/applets/minipager/pagersettings.kcfg @@ -49,10 +49,15 @@ true - + true + + + + true + -- cgit v1.2.1