handling IME
This commit is contained in:
		
							parent
							
								
									6fa8138568
								
							
						
					
					
						commit
						f11ca64eac
					
				| @ -341,10 +341,70 @@ impl Handler { | |||||||
|                 if let Some(k) = control_key { |                 if let Some(k) = control_key { | ||||||
|                     key_event.set_control_key(k); |                     key_event.set_control_key(k); | ||||||
|                 } else { |                 } else { | ||||||
|                     let chr = match evt.name { |                     let mut chr = match evt.name { | ||||||
|                         Some(ref s) => s.chars().next().unwrap_or('\0'), |                         Some(ref s) => { | ||||||
|  |                             if s.len() <= 2 { // exclude chinese characters
 | ||||||
|  |                                 s.chars().next().unwrap_or('\0') | ||||||
|  |                             } else { | ||||||
|  |                                 '\0' | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|                         _ => '\0', |                         _ => '\0', | ||||||
|                     }; |                     }; | ||||||
|  |                     if chr == '·' { // special for Chinese
 | ||||||
|  |                         chr = '`'; | ||||||
|  |                     } | ||||||
|  |                     if chr == '\0' { | ||||||
|  |                         chr = match key { | ||||||
|  |                             Key::Num1 => '1', | ||||||
|  |                             Key::Num2 => '2', | ||||||
|  |                             Key::Num3 => '3', | ||||||
|  |                             Key::Num4 => '4', | ||||||
|  |                             Key::Num5 => '5', | ||||||
|  |                             Key::Num6 => '6', | ||||||
|  |                             Key::Num7 => '7', | ||||||
|  |                             Key::Num8 => '8', | ||||||
|  |                             Key::Num9 => '9', | ||||||
|  |                             Key::Num0 => '0', | ||||||
|  |                             Key::KeyA => 'a', | ||||||
|  |                             Key::KeyB => 'b', | ||||||
|  |                             Key::KeyC => 'c', | ||||||
|  |                             Key::KeyD => 'd', | ||||||
|  |                             Key::KeyE => 'e', | ||||||
|  |                             Key::KeyF => 'f', | ||||||
|  |                             Key::KeyG => 'g', | ||||||
|  |                             Key::KeyH => 'h', | ||||||
|  |                             Key::KeyI => 'i', | ||||||
|  |                             Key::KeyJ => 'j', | ||||||
|  |                             Key::KeyK => 'k', | ||||||
|  |                             Key::KeyL => 'l', | ||||||
|  |                             Key::KeyM => 'm', | ||||||
|  |                             Key::KeyN => 'n', | ||||||
|  |                             Key::KeyO => 'o', | ||||||
|  |                             Key::KeyP => 'p', | ||||||
|  |                             Key::KeyQ => 'q', | ||||||
|  |                             Key::KeyR => 'r', | ||||||
|  |                             Key::KeyS => 's', | ||||||
|  |                             Key::KeyT => 't', | ||||||
|  |                             Key::KeyU => 'u', | ||||||
|  |                             Key::KeyV => 'v', | ||||||
|  |                             Key::KeyW => 'w', | ||||||
|  |                             Key::KeyX => 'x', | ||||||
|  |                             Key::KeyY => 'y', | ||||||
|  |                             Key::KeyZ => 'z', | ||||||
|  |                             Key::Comma => ',', | ||||||
|  |                             Key::Dot => '.', | ||||||
|  |                             Key::SemiColon => ';', | ||||||
|  |                             Key::Quote => '\'', | ||||||
|  |                             Key::LeftBracket => '[', | ||||||
|  |                             Key::RightBracket => ']', | ||||||
|  |                             Key::BackSlash => '\\', | ||||||
|  |                             Key::Minus => '-', | ||||||
|  |                             Key::Equal => '=', | ||||||
|  |                             Key::BackQuote => '`', | ||||||
|  |                             _ => '\0', | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|                     if chr != '\0' { |                     if chr != '\0' { | ||||||
|                         if chr == 'l' && is_win && command { |                         if chr == 'l' && is_win && command { | ||||||
|                             me.lock_screen(); |                             me.lock_screen(); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user