summaryrefslogtreecommitdiff
diff options
-rw-r--r--launcher/Launcher.cpp18
-rw-r--r--launcher/Launcher.h2
-rw-r--r--tests/test_launcher.cpp11
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);