diff options
| -rw-r--r-- | launcher/Launcher.cpp | 18 | ||||
| -rw-r--r-- | launcher/Launcher.h | 2 | ||||
| -rw-r--r-- | tests/test_launcher.cpp | 11 |
3 files changed, 22 insertions, 9 deletions
diff --git a/launcher/Launcher.cpp b/launcher/Launcher.cpp index 61d251f9f..5f97d9bf1 100644 --- a/launcher/Launcher.cpp +++ b/launcher/Launcher.cpp @@ -2227,21 +2227,25 @@ void Launcher::RecvMouseMove(int x, int y, int dx, int dy, unsigned long button_ EventLogic(); } -void Launcher::RecvMouseWheel(int x, int y, int wheel_delta, unsigned long button_flags, unsigned long key_flags) +void Launcher::RecvMouseWheel(int /*x*/, int /*y*/, int wheel_delta, unsigned long /*button_flags*/, unsigned long key_flags) { if (!_hovered) return; + bool alt_pressed = nux::GetKeyModifierState(key_flags, nux::NUX_STATE_ALT); + + if (alt_pressed) + ScrollLauncher(wheel_delta); +} + +void Launcher::ScrollLauncher(int wheel_delta) +{ if (wheel_delta < 0) - { - // scroll up + // scroll down _launcher_drag_delta -= 25; - } else - { - // scroll down + // scroll up _launcher_drag_delta += 25; - } EnsureAnimation(); } diff --git a/launcher/Launcher.h b/launcher/Launcher.h index 5b8d2ea09..0d40eb18f 100644 --- a/launcher/Launcher.h +++ b/launcher/Launcher.h @@ -118,6 +118,8 @@ public: virtual void RecvQuicklistOpened(QuicklistView* quicklist); virtual void RecvQuicklistClosed(QuicklistView* quicklist); + void ScrollLauncher(int wheel_delta); + int GetMouseX() const; int GetMouseY() const; diff --git a/tests/test_launcher.cpp b/tests/test_launcher.cpp index 2c36b0cde..0f9257654 100644 --- a/tests/test_launcher.cpp +++ b/tests/test_launcher.cpp @@ -211,12 +211,19 @@ TEST_F(TestLauncher, TestMouseWheelScroll) launcher_->SetHover(true); initial_scroll_delta = launcher_->GetDragDelta(); + unsigned long key_flags = 0; + + launcher_->RecvMouseWheel(0, 0, 20, 0, key_flags); + EXPECT_EQ((launcher_->GetDragDelta()), initial_scroll_delta); + + key_flags |= nux::NUX_STATE_ALT; + // scroll down - launcher_->RecvMouseWheel(0,0,20,0,0); + launcher_->RecvMouseWheel(0, 0, 20, 0, key_flags); EXPECT_EQ((launcher_->GetDragDelta() - initial_scroll_delta), 25); // scroll up - launcher_->RecvMouseWheel(0,0,-20,0,0); + launcher_->RecvMouseWheel(0, 0, -20, 0, key_flags); EXPECT_EQ(launcher_->GetDragDelta(), initial_scroll_delta); launcher_->SetHover(false); |
