summaryrefslogtreecommitdiff
path: root/src/input_handler.cc
diff options
context:
space:
mode:
authorEnrico Zandomeni Borba <enricozb@gmail.com>2024-08-06 09:03:38 +0200
committerEnrico Zandomeni Borba <enricozb@gmail.com>2024-08-06 09:03:38 +0200
commit0fddb3fef8b668582c4b1246e0fb6fb1da0c6af7 (patch)
treebd80f717a9490b46e9801d789bbe7341800589cd /src/input_handler.cc
parentf2e7498ccc56923b1871278ef4f75e5c0c935b40 (diff)
fix mouse scrolling
Diffstat (limited to 'src/input_handler.cc')
-rw-r--r--src/input_handler.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/input_handler.cc b/src/input_handler.cc
index 2703b51a..94f4cb79 100644
--- a/src/input_handler.cc
+++ b/src/input_handler.cc
@@ -127,7 +127,10 @@ struct MouseHandler
Buffer& buffer = context.buffer();
BufferCoord cursor;
- constexpr auto modifiers = Key::Modifiers::Control | Key::Modifiers::Alt | Key::Modifiers::Shift | Key::Modifiers::MouseButtonMask;
+ // bits above these potentially store additional information
+ constexpr auto mask = (Key::Modifiers) 0x7FF;
+ constexpr auto modifiers = Key::Modifiers::Control | Key::Modifiers::Alt | Key::Modifiers::Shift | Key::Modifiers::MouseButtonMask | ~mask;
+
switch ((key.modifiers & ~modifiers).value)
{
case Key::Modifiers::MousePress:
@@ -193,7 +196,7 @@ struct MouseHandler
}
case Key::Modifiers::Scroll:
- scroll_window(context, static_cast<int32_t>(key.key), m_dragging ? OnHiddenCursor::MoveCursor : OnHiddenCursor::PreserveSelections);
+ scroll_window(context, key.scroll_amount(), m_dragging ? OnHiddenCursor::MoveCursor : OnHiddenCursor::PreserveSelections);
return true;
default: return false;