@@ -69,7 +69,7 @@ pub fn now_sec() -> f64 {
69
69
70
70
pub fn screen_size_in_native_points ( ) -> Option < egui:: Vec2 > {
71
71
let window = web_sys:: window ( ) ?;
72
- Some ( egui:: Vec2 :: new (
72
+ Some ( egui:: vec2 (
73
73
window. inner_width ( ) . ok ( ) ?. as_f64 ( ) ? as f32 ,
74
74
window. inner_height ( ) . ok ( ) ?. as_f64 ( ) ? as f32 ,
75
75
) )
@@ -1022,11 +1022,11 @@ fn install_canvas_events(runner_ref: &AppRunnerRef) -> Result<(), JsValue> {
1022
1022
let points_per_scroll_line = 8.0 ; // Note that this is intentionally different from what we use in egui_glium / winit.
1023
1023
points_per_scroll_line
1024
1024
}
1025
- _ => 1.0 ,
1025
+ _ => 1.0 , // DOM_DELTA_PIXEL
1026
1026
} ;
1027
1027
1028
- let delta = -scroll_multiplier
1029
- * egui:: Vec2 :: new ( event. delta_x ( ) as f32 , event. delta_y ( ) as f32 ) ;
1028
+ let mut delta =
1029
+ -scroll_multiplier * egui:: vec2 ( event. delta_x ( ) as f32 , event. delta_y ( ) as f32 ) ;
1030
1030
1031
1031
// Report a zoom event in case CTRL (on Windows or Linux) or CMD (on Mac) is pressed.
1032
1032
// This if-statement is equivalent to how `Modifiers.command` is determined in
@@ -1035,6 +1035,12 @@ fn install_canvas_events(runner_ref: &AppRunnerRef) -> Result<(), JsValue> {
1035
1035
let factor = ( delta. y / 200.0 ) . exp ( ) ;
1036
1036
runner_lock. input . raw . events . push ( egui:: Event :: Zoom ( factor) ) ;
1037
1037
} else {
1038
+ if event. shift_key ( ) {
1039
+ // Treat as horizontal scrolling.
1040
+ // Note: one Mac we already get horizontal scroll events when shift is down.
1041
+ delta = egui:: vec2 ( delta. x + delta. y , 0.0 ) ;
1042
+ }
1043
+
1038
1044
runner_lock
1039
1045
. input
1040
1046
. raw
0 commit comments