1- use cef:: sys:: { cef_event_flags_t , cef_key_event_type_t, cef_mouse_button_type_t} ;
1+ use cef:: sys:: { cef_key_event_type_t, cef_mouse_button_type_t} ;
22use cef:: { Browser , ImplBrowser , ImplBrowserHost , KeyEvent , MouseEvent } ;
33use winit:: event:: { ButtonSource , ElementState , MouseButton , MouseScrollDelta , WindowEvent } ;
4- use winit:: keyboard:: Key ;
54
65mod keymap;
76use keymap:: { ToCharRepresentation , ToNativeKeycode , ToVKBits } ;
@@ -70,6 +69,8 @@ pub(crate) fn handle_window_event(browser: &Browser, input_state: &mut InputStat
7069 WindowEvent :: KeyboardInput { device_id : _, event, is_synthetic : _ } => {
7170 let Some ( host) = browser. host ( ) else { return } ;
7271
72+ input_state. modifiers_apply_key_event ( & event. logical_key , & event. state ) ;
73+
7374 let mut key_event = KeyEvent {
7475 type_ : match ( event. state , & event. logical_key ) {
7576 ( ElementState :: Pressed , winit:: keyboard:: Key :: Character ( _) ) => cef_key_event_type_t:: KEYEVENT_CHAR ,
@@ -82,35 +83,6 @@ pub(crate) fn handle_window_event(browser: &Browser, input_state: &mut InputStat
8283
8384 key_event. modifiers = input_state. cef_modifiers ( & event. location , event. repeat ) . into ( ) ;
8485
85- match ( & event. logical_key , event. state ) {
86- ( Key :: Named ( winit:: keyboard:: NamedKey :: Control ) , ElementState :: Pressed ) => {
87- key_event. modifiers |= cef_event_flags_t:: EVENTFLAG_CONTROL_DOWN . 0 ;
88- }
89- ( Key :: Named ( winit:: keyboard:: NamedKey :: Control ) , ElementState :: Released ) => {
90- key_event. modifiers &= !( cef_event_flags_t:: EVENTFLAG_CONTROL_DOWN . 0 ) ;
91- }
92- ( Key :: Named ( winit:: keyboard:: NamedKey :: Shift ) , ElementState :: Pressed ) => {
93- key_event. modifiers |= cef_event_flags_t:: EVENTFLAG_SHIFT_DOWN . 0 ;
94- }
95- ( Key :: Named ( winit:: keyboard:: NamedKey :: Shift ) , ElementState :: Released ) => {
96- key_event. modifiers &= !( cef_event_flags_t:: EVENTFLAG_SHIFT_DOWN . 0 ) ;
97- }
98- ( Key :: Named ( winit:: keyboard:: NamedKey :: Alt ) , ElementState :: Pressed ) => {
99- key_event. modifiers |= cef_event_flags_t:: EVENTFLAG_ALT_DOWN . 0 ;
100- }
101- ( Key :: Named ( winit:: keyboard:: NamedKey :: Alt ) , ElementState :: Released ) => {
102- key_event. modifiers &= !( cef_event_flags_t:: EVENTFLAG_ALT_DOWN . 0 ) ;
103- }
104- ( Key :: Named ( winit:: keyboard:: NamedKey :: Meta ) , ElementState :: Pressed ) => {
105- key_event. modifiers |= cef_event_flags_t:: EVENTFLAG_COMMAND_DOWN . 0 ;
106- }
107- ( Key :: Named ( winit:: keyboard:: NamedKey :: Meta ) , ElementState :: Released ) => {
108- key_event. modifiers &= !( cef_event_flags_t:: EVENTFLAG_COMMAND_DOWN . 0 ) ;
109- }
110-
111- _ => { }
112- }
113-
11486 key_event. windows_key_code = match & event. logical_key {
11587 winit:: keyboard:: Key :: Named ( named) => named. to_vk_bits ( ) ,
11688 winit:: keyboard:: Key :: Character ( char) => char. chars ( ) . next ( ) . unwrap_or_default ( ) . to_vk_bits ( ) ,
0 commit comments