summaryrefslogtreecommitdiff
path: root/src/input_handler.cc
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2024-08-14 21:09:53 +1000
committerMaxime Coste <mawww@kakoune.org>2024-08-14 21:09:53 +1000
commitb7c014ba4fd1ef4aa309eb7c89f49db2deba630b (patch)
tree148965bca9ea353a101c56e020260d0a3506ae6b /src/input_handler.cc
parenta0a000951e5569fc9af309dc329b759fe6e1d2e8 (diff)
parent0fddb3fef8b668582c4b1246e0fb6fb1da0c6af7 (diff)
Merge remote-tracking branch 'enricozb/enricozb/scroll-coordinates'
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 615dbf10..8ab88f20 100644
--- a/src/input_handler.cc
+++ b/src/input_handler.cc
@@ -118,7 +118,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:
@@ -184,7 +187,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;