Skip to content

Commit 17c5fe8

Browse files
committed
Fix
1 parent b881963 commit 17c5fe8

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

editor/src/messages/input_preprocessor/input_preprocessor_message_handler.rs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ impl<'a> MessageHandler<InputPreprocessorMessage, InputPreprocessorMessageContex
9090
self.translate_mouse_event(mouse_state, true, responses);
9191
}
9292
InputPreprocessorMessage::PointerMove { editor_mouse_state, modifier_keys } => {
93+
self.clear_double_tap_state();
9394
self.update_states_of_modifier_keys(modifier_keys, responses);
9495

9596
let mouse_state = editor_mouse_state.to_mouse_state(viewport);
@@ -457,4 +458,35 @@ mod test {
457458

458459
assert!(!responses.contains(&InputMapperMessage::DoubleTap(Key::Space).into()));
459460
}
461+
462+
#[test]
463+
fn process_double_tap_interrupted_by_mouse_movement() {
464+
let mut input_preprocessor = InputPreprocessorMessageHandler::default();
465+
let mut responses = VecDeque::new();
466+
467+
key_down(&mut input_preprocessor, Key::Space, &mut responses);
468+
key_up(&mut input_preprocessor, Key::Space, &mut responses);
469+
responses.clear();
470+
471+
input_preprocessor.time = 50;
472+
key_down(&mut input_preprocessor, Key::Space, &mut responses);
473+
responses.clear();
474+
475+
// PointerMove happens!
476+
input_preprocessor.process_message(
477+
InputPreprocessorMessage::PointerMove {
478+
editor_mouse_state: EditorMouseState::default(),
479+
modifier_keys: ModifierKeys::empty(),
480+
},
481+
&mut responses,
482+
InputPreprocessorMessageContext {
483+
viewport: &ViewportMessageHandler::default(),
484+
},
485+
);
486+
responses.clear();
487+
488+
key_up(&mut input_preprocessor, Key::Space, &mut responses);
489+
490+
assert!(!responses.contains(&InputMapperMessage::DoubleTap(Key::Space).into()));
491+
}
460492
}

0 commit comments

Comments
 (0)