MCPcopy Create free account
hub / github.com/DioxusLabs/dioxus-components / from_keyboard

Method from_keyboard

primitives/src/move_interaction.rs:31–58  ·  view source on GitHub ↗
(event: &Event<KeyboardData>, step: f64)

Source from the content-addressed store, hash-verified

29
30impl MoveEvent {
31 pub(crate) fn from_keyboard(event: &Event<KeyboardData>, step: f64) -> Option<Self> {
32 let modifiers = event.data().modifiers();
33 let modifiers = MoveModifiers {
34 alt_key: modifiers.alt(),
35 ctrl_key: modifiers.ctrl(),
36 meta_key: modifiers.meta(),
37 shift_key: modifiers.shift(),
38 };
39 let delta = if modifiers.shift_key {
40 step * 10.0
41 } else {
42 step
43 };
44
45 let (delta_x, delta_y) = match event.data().key() {
46 Key::ArrowUp => (0.0, delta),
47 Key::ArrowDown => (0.0, -delta),
48 Key::ArrowRight => (delta, 0.0),
49 Key::ArrowLeft => (-delta, 0.0),
50 _ => return None,
51 };
52
53 Some(Self {
54 delta_x,
55 delta_y,
56 modifiers,
57 })
58 }
59}
60
61/// Shared movement state for controls that support pointer dragging and arrow keys.

Callers

nothing calls this directly

Calls 2

modifiersMethod · 0.80
keyMethod · 0.45

Tested by

no test coverage detected