diff --git a/editor/src/messages/portfolio/document/navigation/navigation_message_handler.rs b/editor/src/messages/portfolio/document/navigation/navigation_message_handler.rs index 4161d6f7d..3d02d9ce2 100644 --- a/editor/src/messages/portfolio/document/navigation/navigation_message_handler.rs +++ b/editor/src/messages/portfolio/document/navigation/navigation_message_handler.rs @@ -8,6 +8,7 @@ use crate::messages::input_mapper::utility_types::input_mouse::ViewportPosition; use crate::messages::portfolio::document::navigation::utility_types::NavigationOperation; use crate::messages::portfolio::document::utility_types::misc::PTZ; use crate::messages::portfolio::document::utility_types::network_interface::NodeNetworkInterface; +use crate::messages::portfolio::utility_types::KeyboardPlatformLayout; use crate::messages::prelude::*; use crate::messages::tool::utility_types::{HintData, HintGroup, HintInfo}; use glam::{DAffine2, DVec2}; @@ -178,7 +179,14 @@ impl MessageHandler> for Navigat responses.add(DocumentMessage::PTZUpdate); } NavigationMessage::CanvasPanMouseWheel { use_y_as_x } => { - let delta = if use_y_as_x { (-ipp.mouse.scroll_delta.y, 0.).into() } else { -ipp.mouse.scroll_delta.as_dvec2() } * VIEWPORT_SCROLL_RATE; + // On Mac, the OS already converts Shift+scroll into horizontal scrolling + let keyboard_platform = GLOBAL_PLATFORM.get().copied().unwrap_or_default().as_keyboard_platform_layout(); + + let delta = if use_y_as_x && keyboard_platform == KeyboardPlatformLayout::Standard { + (ipp.mouse.scroll_delta.y, 0.).into() + } else { + ipp.mouse.scroll_delta.as_dvec2() + } * -VIEWPORT_SCROLL_RATE; responses.add(NavigationMessage::CanvasPan { delta }); } NavigationMessage::CanvasTiltResetAndZoomTo100Percent => {