Revert "Send modifiers first"

This reverts commit e17977d7c7.
This commit is contained in:
daxpedda 2023-06-13 23:16:46 +02:00
parent f0d88c52a3
commit a444637b18

View file

@ -134,7 +134,7 @@ impl<T> EventLoopWindowTarget<T> {
let modifiers = self.modifiers.clone(); let modifiers = self.modifiers.clone();
canvas.on_keyboard_press( canvas.on_keyboard_press(
move |physical_key, logical_key, text, location, repeat, active_modifiers| { move |physical_key, logical_key, text, location, repeat, active_modifiers| {
let modifiers = (modifiers.get() != active_modifiers).then(|| { let modifiers_changed = (modifiers.get() != active_modifiers).then(|| {
modifiers.set(active_modifiers); modifiers.set(active_modifiers);
Event::WindowEvent { Event::WindowEvent {
window_id: RootWindowId(id), window_id: RootWindowId(id),
@ -142,22 +142,25 @@ impl<T> EventLoopWindowTarget<T> {
} }
}); });
runner.send_events(modifiers.into_iter().chain(iter::once(Event::WindowEvent { runner.send_events(
window_id: RootWindowId(id), iter::once(Event::WindowEvent {
event: WindowEvent::KeyboardInput { window_id: RootWindowId(id),
device_id: RootDeviceId(unsafe { DeviceId::dummy() }), event: WindowEvent::KeyboardInput {
event: KeyEvent { device_id: RootDeviceId(unsafe { DeviceId::dummy() }),
physical_key, event: KeyEvent {
logical_key, physical_key,
text, logical_key,
location, text,
state: ElementState::Pressed, location,
repeat, state: ElementState::Pressed,
platform_specific: KeyEventExtra, repeat,
platform_specific: KeyEventExtra,
},
is_synthetic: false,
}, },
is_synthetic: false, })
}, .chain(modifiers_changed),
}))); );
}, },
prevent_default, prevent_default,
); );
@ -166,7 +169,7 @@ impl<T> EventLoopWindowTarget<T> {
let modifiers = self.modifiers.clone(); let modifiers = self.modifiers.clone();
canvas.on_keyboard_release( canvas.on_keyboard_release(
move |physical_key, logical_key, text, location, repeat, active_modifiers| { move |physical_key, logical_key, text, location, repeat, active_modifiers| {
let modifiers = (modifiers.get() != active_modifiers).then(|| { let modifiers_changed = (modifiers.get() != active_modifiers).then(|| {
modifiers.set(active_modifiers); modifiers.set(active_modifiers);
Event::WindowEvent { Event::WindowEvent {
window_id: RootWindowId(id), window_id: RootWindowId(id),
@ -174,22 +177,25 @@ impl<T> EventLoopWindowTarget<T> {
} }
}); });
runner.send_events(modifiers.into_iter().chain(iter::once(Event::WindowEvent { runner.send_events(
window_id: RootWindowId(id), iter::once(Event::WindowEvent {
event: WindowEvent::KeyboardInput { window_id: RootWindowId(id),
device_id: RootDeviceId(unsafe { DeviceId::dummy() }), event: WindowEvent::KeyboardInput {
event: KeyEvent { device_id: RootDeviceId(unsafe { DeviceId::dummy() }),
physical_key, event: KeyEvent {
logical_key, physical_key,
text, logical_key,
location, text,
state: ElementState::Released, location,
repeat, state: ElementState::Released,
platform_specific: KeyEventExtra, repeat,
platform_specific: KeyEventExtra,
},
is_synthetic: false,
}, },
is_synthetic: false, })
}, .chain(modifiers_changed),
}))) )
}, },
prevent_default, prevent_default,
); );