feat: modifier key
This commit is contained in:
		
							parent
							
								
									28c11801f3
								
							
						
					
					
						commit
						26e77ba2c3
					
				
							
								
								
									
										2
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @ -4914,7 +4914,7 @@ dependencies = [ | |||||||
| [[package]] | [[package]] | ||||||
| name = "rdev" | name = "rdev" | ||||||
| version = "0.5.0-2" | version = "0.5.0-2" | ||||||
| source = "git+https://github.com/mcfans/rdev#d643ea4542e61931cb20e1ecd390d6a3c9569171" | source = "git+https://github.com/mcfans/rdev#97f63d5bc51bb2387d3f2664d3127640e492c9e5" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "cocoa", |  "cocoa", | ||||||
|  "core-foundation", |  "core-foundation", | ||||||
|  | |||||||
| @ -9,8 +9,6 @@ object KeyEventConverter { | |||||||
|         var chrValue = 0 |         var chrValue = 0 | ||||||
|         var modifiers = 0 |         var modifiers = 0 | ||||||
| 
 | 
 | ||||||
|         android.util.Log.d(tag, "proto: $keyEventProto") |  | ||||||
| 
 |  | ||||||
|         val keyboardMode = keyEventProto.getMode() |         val keyboardMode = keyEventProto.getMode() | ||||||
| 
 | 
 | ||||||
|         if (keyEventProto.hasChr()) { |         if (keyEventProto.hasChr()) { | ||||||
| @ -28,12 +26,10 @@ object KeyEventConverter { | |||||||
|         if (modifiersList != null) { |         if (modifiersList != null) { | ||||||
|             for (modifier in keyEventProto.getModifiersList()) { |             for (modifier in keyEventProto.getModifiersList()) { | ||||||
|                 val modifierValue = convertModifier(modifier) |                 val modifierValue = convertModifier(modifier) | ||||||
|                 modifiers = modifiers and modifierValue |                 modifiers = modifiers or modifierValue | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         android.util.Log.d(tag, "modifiers: $modifiersList") |  | ||||||
| 
 |  | ||||||
|         var action = 0 |         var action = 0 | ||||||
|         if (keyEventProto.getDown()) { |         if (keyEventProto.getDown()) { | ||||||
|             action = KeyEvent.ACTION_DOWN |             action = KeyEvent.ACTION_DOWN | ||||||
|  | |||||||
| @ -1072,6 +1072,8 @@ pub fn keycode_to_rdev_key(keycode: u32) -> Key { | |||||||
|     return rdev::win_key_from_scancode(keycode); |     return rdev::win_key_from_scancode(keycode); | ||||||
|     #[cfg(any(target_os = "linux"))] |     #[cfg(any(target_os = "linux"))] | ||||||
|     return rdev::linux_key_from_code(keycode); |     return rdev::linux_key_from_code(keycode); | ||||||
|  |     #[cfg(any(target_os = "android"))] | ||||||
|  |     return rdev::android_key_from_code(keycode); | ||||||
|     #[cfg(target_os = "macos")] |     #[cfg(target_os = "macos")] | ||||||
|     return rdev::macos_key_from_code(keycode.try_into().unwrap_or_default()); |     return rdev::macos_key_from_code(keycode.try_into().unwrap_or_default()); | ||||||
| } | } | ||||||
|  | |||||||
| @ -1728,11 +1728,7 @@ impl Connection { | |||||||
|                 Some(message::Union::KeyEvent(..)) => {} |                 Some(message::Union::KeyEvent(..)) => {} | ||||||
|                 #[cfg(any(target_os = "android"))] |                 #[cfg(any(target_os = "android"))] | ||||||
|                 Some(message::Union::KeyEvent(mut me)) => { |                 Some(message::Union::KeyEvent(mut me)) => { | ||||||
|                     let is_press = if cfg!(target_os = "linux") { |                     let is_press = (me.press || me.down) && !crate::is_modifier(&me); | ||||||
|                         (me.press || me.down) && !crate::is_modifier(&me) |  | ||||||
|                     } else { |  | ||||||
|                         me.press |  | ||||||
|                     }; |  | ||||||
| 
 | 
 | ||||||
|                     let key = match me.mode.enum_value() { |                     let key = match me.mode.enum_value() { | ||||||
|                         Ok(KeyboardMode::Map) => { |                         Ok(KeyboardMode::Map) => { | ||||||
| @ -1748,7 +1744,6 @@ impl Connection { | |||||||
|                         _ => None, |                         _ => None, | ||||||
|                     } |                     } | ||||||
|                     .filter(crate::keyboard::is_modifier); |                     .filter(crate::keyboard::is_modifier); | ||||||
|                     log::debug!("key:{:?}", key); |  | ||||||
| 
 | 
 | ||||||
|                     if let Some(key) = key { |                     if let Some(key) = key { | ||||||
|                         if is_press { |                         if is_press { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user