mirror of
https://github.com/zed-industries/zed.git
synced 2024-11-09 21:26:14 +03:00
windows: Allow horizontal scroll with shift + scroll (#14147)
Release Notes: - Horizontally scroll when holding down the Shift key and using the scroll wheel https://github.com/zed-industries/zed/assets/95680272/e6480f9c-0f6a-4f47-b700-a3657a75716f
This commit is contained in:
parent
201db23b58
commit
ab3c9f0678
@ -491,13 +491,17 @@ fn handle_mouse_wheel_msg(
|
||||
lparam: LPARAM,
|
||||
state_ptr: Rc<WindowsWindowStatePtr>,
|
||||
) -> Option<isize> {
|
||||
let modifiers = current_modifiers();
|
||||
let mut lock = state_ptr.state.borrow_mut();
|
||||
if let Some(mut callback) = lock.callbacks.input.take() {
|
||||
let scale_factor = lock.scale_factor;
|
||||
let wheel_scroll_lines = lock.system_settings.mouse_wheel_settings.wheel_scroll_lines;
|
||||
let wheel_scroll_amount = match modifiers.shift {
|
||||
true => lock.system_settings.mouse_wheel_settings.wheel_scroll_chars,
|
||||
false => lock.system_settings.mouse_wheel_settings.wheel_scroll_lines,
|
||||
};
|
||||
drop(lock);
|
||||
let wheel_distance =
|
||||
(wparam.signed_hiword() as f32 / WHEEL_DELTA as f32) * wheel_scroll_lines as f32;
|
||||
(wparam.signed_hiword() as f32 / WHEEL_DELTA as f32) * wheel_scroll_amount as f32;
|
||||
let mut cursor_point = POINT {
|
||||
x: lparam.signed_loword().into(),
|
||||
y: lparam.signed_hiword().into(),
|
||||
@ -505,9 +509,15 @@ fn handle_mouse_wheel_msg(
|
||||
unsafe { ScreenToClient(handle, &mut cursor_point).ok().log_err() };
|
||||
let event = ScrollWheelEvent {
|
||||
position: logical_point(cursor_point.x as f32, cursor_point.y as f32, scale_factor),
|
||||
delta: ScrollDelta::Lines(Point {
|
||||
x: 0.0,
|
||||
y: wheel_distance,
|
||||
delta: ScrollDelta::Lines(match modifiers.shift {
|
||||
true => Point {
|
||||
x: wheel_distance,
|
||||
y: 0.0,
|
||||
},
|
||||
false => Point {
|
||||
y: wheel_distance,
|
||||
x: 0.0,
|
||||
},
|
||||
}),
|
||||
modifiers: current_modifiers(),
|
||||
touch_phase: TouchPhase::Moved,
|
||||
|
Loading…
Reference in New Issue
Block a user