From 49533ff90a38e841eb0cdebd73eb8f82f3011596 Mon Sep 17 00:00:00 2001 From: enricobuehler Date: Tue, 14 Jul 2026 00:01:05 +0200 Subject: [PATCH] style(touch): rustfmt the presenter finger dispatch + gesture engine Wrap the long dispatch_finger call args, Abs struct literals, and Act::Button/ Scroll/MoveRel pushes per rustfmt (the CI fmt check on pf-presenter). No behavior change. Co-Authored-By: Claude Opus 4.8 --- crates/pf-presenter/src/run.rs | 68 +++++++++++++--- crates/pf-presenter/src/touch.rs | 129 +++++++++++++++++++++++++------ 2 files changed, 164 insertions(+), 33 deletions(-) diff --git a/crates/pf-presenter/src/run.rs b/crates/pf-presenter/src/run.rs index 8643bff0..12f9d16f 100644 --- a/crates/pf-presenter/src/run.rs +++ b/crates/pf-presenter/src/run.rs @@ -598,7 +598,15 @@ fn run_inner(mut opts: SessionOpts, mut mode: ModeCtl) -> Result .. } => { if is_direct_touch(touch_id) - && dispatch_finger(FingerPhase::Down, &window, &mut stream, finger_id, x, y, timestamp) + && dispatch_finger( + FingerPhase::Down, + &window, + &mut stream, + finger_id, + x, + y, + timestamp, + ) { bump_stats_tier(&mut stats_verbosity, &mut stream, &presenter); } @@ -612,7 +620,15 @@ fn run_inner(mut opts: SessionOpts, mut mode: ModeCtl) -> Result .. } => { if is_direct_touch(touch_id) - && dispatch_finger(FingerPhase::Move, &window, &mut stream, finger_id, x, y, timestamp) + && dispatch_finger( + FingerPhase::Move, + &window, + &mut stream, + finger_id, + x, + y, + timestamp, + ) { bump_stats_tier(&mut stats_verbosity, &mut stream, &presenter); } @@ -626,7 +642,15 @@ fn run_inner(mut opts: SessionOpts, mut mode: ModeCtl) -> Result .. } => { if is_direct_touch(touch_id) - && dispatch_finger(FingerPhase::Up, &window, &mut stream, finger_id, x, y, timestamp) + && dispatch_finger( + FingerPhase::Up, + &window, + &mut stream, + finger_id, + x, + y, + timestamp, + ) { bump_stats_tier(&mut stats_verbosity, &mut stream, &presenter); } @@ -1374,15 +1398,32 @@ fn dispatch_finger( let abs = match st.last_video { Some(video) => { let (ax, ay, aw, ah) = finger_to_content((pw, ph), video, x, y); - Abs { x: ax, y: ay, w: aw, h: ah } + Abs { + x: ax, + y: ay, + w: aw, + h: ah, + } } - None if phase == FingerPhase::Up => Abs { x: 0, y: 0, w: 0, h: 0 }, + None if phase == FingerPhase::Up => Abs { + x: 0, + y: 0, + w: 0, + h: 0, + }, None => return false, }; let Some(cap) = st.capture.as_mut() else { return false; }; - cap.dispatch_finger(phase, finger_id, wx, wy, abs, timestamp as f64 / 1_000_000.0) + cap.dispatch_finger( + phase, + finger_id, + wx, + wy, + abs, + timestamp as f64 / 1_000_000.0, + ) } /// Advance the stats-overlay tier and re-render the OSD immediately from the last window @@ -1759,7 +1800,10 @@ mod tests { // Video exactly fills the window (no letterbox): normalized finger → content // corners/center map straight through, and the surface size is the video size. let video = (1920, 1080); - assert_eq!(finger_to_content((1920, 1080), video, 0.0, 0.0), (0, 0, 1920, 1080)); + assert_eq!( + finger_to_content((1920, 1080), video, 0.0, 0.0), + (0, 0, 1920, 1080) + ); assert_eq!( finger_to_content((1920, 1080), video, 1.0, 1.0), (1920, 1080, 1920, 1080) @@ -1782,8 +1826,14 @@ mod tests { assert_eq!((w, h), (1280, 720)); assert_eq!(cy, 360); // y=0.01 → window pixel 8, above the 40px bar → clamps to content top (0). - assert_eq!(finger_to_content(surface, video, 0.5, 0.01), (640, 0, 1280, 720)); + assert_eq!( + finger_to_content(surface, video, 0.5, 0.01), + (640, 0, 1280, 720) + ); // Bottom-right corner of the video content. - assert_eq!(finger_to_content(surface, video, 1.0, 1.0), (1280, 720, 1280, 720)); + assert_eq!( + finger_to_content(surface, video, 1.0, 1.0), + (1280, 720, 1280, 720) + ); } } diff --git a/crates/pf-presenter/src/touch.rs b/crates/pf-presenter/src/touch.rs index b1431bbf..d9dd978a 100644 --- a/crates/pf-presenter/src/touch.rs +++ b/crates/pf-presenter/src/touch.rs @@ -166,7 +166,10 @@ impl Gestures { acts.push(Act::MoveAbs(abs)); // pointer: place the cursor before any press } if self.drag_held { - acts.push(Act::Button { gs: BTN_LEFT, down: true }); + acts.push(Act::Button { + gs: BTN_LEFT, + down: true, + }); } self.track_id = Some(id); self.prev = (wx, wy); @@ -208,17 +211,32 @@ impl Gestures { self.active = false; if self.drag_held { self.drag_held = false; - acts.push(Act::Button { gs: BTN_LEFT, down: false }); // end the held drag + acts.push(Act::Button { + gs: BTN_LEFT, + down: false, + }); // end the held drag } else if !self.moved { match self.max_fingers { n if n >= 3 => acts.push(Act::CycleStats), 2 => { - acts.push(Act::Button { gs: BTN_RIGHT, down: true }); - acts.push(Act::Button { gs: BTN_RIGHT, down: false }); + acts.push(Act::Button { + gs: BTN_RIGHT, + down: true, + }); + acts.push(Act::Button { + gs: BTN_RIGHT, + down: false, + }); } _ => { - acts.push(Act::Button { gs: BTN_LEFT, down: true }); - acts.push(Act::Button { gs: BTN_LEFT, down: false }); + acts.push(Act::Button { + gs: BTN_LEFT, + down: true, + }); + acts.push(Act::Button { + gs: BTN_LEFT, + down: false, + }); self.last_tap_up = t; // arm tap-drag self.last_tap_pt = self.start; } @@ -261,12 +279,18 @@ impl Gestures { let notches_y = ((self.scroll_anchor.1 - cy) / SCROLL_DIV) as i32; let notches_x = ((cx - self.scroll_anchor.0) / SCROLL_DIV) as i32; if notches_y != 0 { - acts.push(Act::Scroll { axis: 0, delta: notches_y * 120 }); + acts.push(Act::Scroll { + axis: 0, + delta: notches_y * 120, + }); self.scroll_anchor.1 = cy; self.moved = true; } if notches_x != 0 { - acts.push(Act::Scroll { axis: 1, delta: notches_x * 120 }); + acts.push(Act::Scroll { + axis: 1, + delta: notches_x * 120, + }); self.scroll_anchor.0 = cx; self.moved = true; } @@ -304,7 +328,10 @@ impl Gestures { let out_x = self.carry.0 as i32; // truncates toward zero → remainder kept with sign let out_y = self.carry.1 as i32; if out_x != 0 || out_y != 0 { - acts.push(Act::MoveRel { dx: out_x, dy: out_y }); + acts.push(Act::MoveRel { + dx: out_x, + dy: out_y, + }); self.carry.0 -= out_x as f32; self.carry.1 -= out_y as f32; } @@ -316,10 +343,20 @@ impl Gestures { mod tests { use super::*; - const ABS: Abs = Abs { x: 100, y: 200, w: 1280, h: 720 }; + const ABS: Abs = Abs { + x: 100, + y: 200, + w: 1280, + h: 720, + }; fn abs_at(x: i32, y: i32) -> Abs { - Abs { x, y, w: 1280, h: 720 } + Abs { + x, + y, + w: 1280, + h: 720, + } } #[test] @@ -331,8 +368,14 @@ mod tests { assert_eq!( acts, vec![ - Act::Button { gs: BTN_LEFT, down: true }, - Act::Button { gs: BTN_LEFT, down: false }, + Act::Button { + gs: BTN_LEFT, + down: true + }, + Act::Button { + gs: BTN_LEFT, + down: false + }, ] ); } @@ -346,8 +389,14 @@ mod tests { acts, vec![ Act::MoveAbs(abs_at(640, 360)), - Act::Button { gs: BTN_LEFT, down: true }, - Act::Button { gs: BTN_LEFT, down: false }, + Act::Button { + gs: BTN_LEFT, + down: true + }, + Act::Button { + gs: BTN_LEFT, + down: false + }, ] ); } @@ -362,8 +411,14 @@ mod tests { assert_eq!( acts, vec![ - Act::Button { gs: BTN_RIGHT, down: true }, - Act::Button { gs: BTN_RIGHT, down: false }, + Act::Button { + gs: BTN_RIGHT, + down: true + }, + Act::Button { + gs: BTN_RIGHT, + down: false + }, ] ); } @@ -415,7 +470,9 @@ mod tests { let a2 = g.motion(2, 120.0, 160.0, ABS, 12.0); let scrolls: Vec<_> = a1.into_iter().chain(a2).collect(); assert!( - scrolls.iter().any(|a| matches!(a, Act::Scroll { axis: 0, delta } if *delta > 0)), + scrolls + .iter() + .any(|a| matches!(a, Act::Scroll { axis: 0, delta } if *delta > 0)), "expected an upward vertical scroll, got {scrolls:?}" ); } @@ -429,17 +486,35 @@ mod tests { assert_eq!( click, vec![ - Act::Button { gs: BTN_LEFT, down: true }, - Act::Button { gs: BTN_LEFT, down: false }, + Act::Button { + gs: BTN_LEFT, + down: true + }, + Act::Button { + gs: BTN_LEFT, + down: false + }, ] ); // A new touch nearby within the window arms a held drag: button down on touch, and // the whole gesture holds it until the lift. let down2 = g.down(2, 52.0, 51.0, ABS, 120.0); - assert_eq!(down2, vec![Act::Button { gs: BTN_LEFT, down: true }]); + assert_eq!( + down2, + vec![Act::Button { + gs: BTN_LEFT, + down: true + }] + ); let _ = g.motion(2, 90.0, 51.0, ABS, 140.0); // drag let end = g.up(2, 160.0); - assert_eq!(end, vec![Act::Button { gs: BTN_LEFT, down: false }]); + assert_eq!( + end, + vec![Act::Button { + gs: BTN_LEFT, + down: false + }] + ); } #[test] @@ -455,8 +530,14 @@ mod tests { assert_eq!( acts, vec![ - Act::Button { gs: BTN_LEFT, down: true }, - Act::Button { gs: BTN_LEFT, down: false }, + Act::Button { + gs: BTN_LEFT, + down: true + }, + Act::Button { + gs: BTN_LEFT, + down: false + }, ] ); }