Skip to content

Commit

Permalink
Change force to be Option<f32> instead of f32 (#3240)
Browse files Browse the repository at this point in the history
  • Loading branch information
lucasmerlin authored Aug 12, 2023
1 parent 6633ecc commit 1036cb1
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 11 deletions.
2 changes: 1 addition & 1 deletion crates/eframe/src/web/input.rs
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ pub fn push_touches(runner: &mut AppRunner, phase: egui::TouchPhase, event: &web
id: egui::TouchId::from(touch.identifier()),
phase,
pos: pos_from_touch(canvas_origin, &touch),
force: touch.force(),
force: Some(touch.force()),
});
}
}
Expand Down
12 changes: 6 additions & 6 deletions crates/egui-winit/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,7 @@ impl State {
id: egui::TouchId(0),
phase: egui::TouchPhase::Start,
pos,
force: 0.0,
force: None,
});
} else {
self.any_pointer_button_down = false;
Expand All @@ -453,7 +453,7 @@ impl State {
id: egui::TouchId(0),
phase: egui::TouchPhase::End,
pos,
force: 0.0,
force: None,
});
};
}
Expand All @@ -479,7 +479,7 @@ impl State {
id: egui::TouchId(0),
phase: egui::TouchPhase::Move,
pos: pos_in_points,
force: 0.0,
force: None,
});
}
} else {
Expand All @@ -505,13 +505,13 @@ impl State {
touch.location.y as f32 / self.pixels_per_point(),
),
force: match touch.force {
Some(winit::event::Force::Normalized(force)) => force as f32,
Some(winit::event::Force::Normalized(force)) => Some(force as f32),
Some(winit::event::Force::Calibrated {
force,
max_possible_force,
..
}) => (force / max_possible_force) as f32,
None => 0_f32,
}) => Some((force / max_possible_force) as f32),
None => None,
},
});
// If we're not yet translating a touch or we're translating this very
Expand Down
4 changes: 2 additions & 2 deletions crates/egui/src/data/input.rs
Original file line number Diff line number Diff line change
Expand Up @@ -274,10 +274,10 @@ pub enum Event {
/// Position of the touch (or where the touch was last detected)
pos: Pos2,

/// Describes how hard the touch device was pressed. May always be `0` if the platform does
/// Describes how hard the touch device was pressed. May always be `None` if the platform does
/// not support pressure sensitivity.
/// The value is in the range from 0.0 (no pressure) to 1.0 (maximum pressure).
force: f32,
force: Option<f32>,
},

/// A raw mouse wheel event as sent by the backend (minus the z coordinate),
Expand Down
4 changes: 2 additions & 2 deletions crates/egui/src/input_state/touch_state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ struct ActiveTouch {
///
/// Note that a value of 0.0 either indicates a very light touch, or it means that the device
/// is not capable of measuring the touch force.
force: f32,
force: Option<f32>,
}

impl TouchState {
Expand Down Expand Up @@ -249,7 +249,7 @@ impl TouchState {

// first pass: calculate force and center of touch positions:
for touch in self.active_touches.values() {
state.avg_force += touch.force;
state.avg_force += touch.force.unwrap_or(0.0);
state.avg_pos.x += touch.pos.x;
state.avg_pos.y += touch.pos.y;
}
Expand Down

0 comments on commit 1036cb1

Please sign in to comment.