@@ -38,9 +38,8 @@ extern "system" {
3838}
3939const VK_HOME : i32 = 0x24 ;
4040
41- pub fn init ( api : & Api , hotkey : & str ) {
41+ pub fn init ( api : & Api , hotkey : i32 ) {
4242 let _ = API_HANDLE . set ( * api) ;
43- let hotkey = parse_hotkey ( hotkey) . unwrap_or ( VK_HOME ) ;
4443 HOTKEY . store ( hotkey, Ordering :: Relaxed ) ;
4544 RUNNING . store ( true , Ordering :: Relaxed ) ;
4645
@@ -463,53 +462,6 @@ fn jump_target(text: &[u8], text_base: usize, target: usize) -> Option<usize> {
463462 Some ( target. wrapping_add ( 5 ) . wrapping_add ( rel as usize ) )
464463}
465464
466- fn parse_hotkey ( value : & str ) -> Option < i32 > {
467- let key = value. trim ( ) ;
468- if key. is_empty ( ) {
469- return None ;
470- }
471- if let Some ( hex) = key. strip_prefix ( "0x" ) . or_else ( || key. strip_prefix ( "0X" ) ) {
472- return i32:: from_str_radix ( hex, 16 ) . ok ( ) . filter ( |value| * value > 0 ) ;
473- }
474- if let Ok ( value) = key. parse :: < i32 > ( ) {
475- return ( value > 0 ) . then_some ( value) ;
476- }
477-
478- let normalized = key
479- . trim_start_matches ( "VK_" )
480- . replace ( [ ' ' , '-' , '_' ] , "" )
481- . to_ascii_uppercase ( ) ;
482- match normalized. as_str ( ) {
483- "BACKSPACE" | "BACK" => Some ( 0x08 ) ,
484- "TAB" => Some ( 0x09 ) ,
485- "ENTER" | "RETURN" => Some ( 0x0D ) ,
486- "SHIFT" => Some ( 0x10 ) ,
487- "CTRL" | "CONTROL" => Some ( 0x11 ) ,
488- "ALT" | "MENU" => Some ( 0x12 ) ,
489- "PAUSE" => Some ( 0x13 ) ,
490- "CAPSLOCK" | "CAPITAL" => Some ( 0x14 ) ,
491- "ESC" | "ESCAPE" => Some ( 0x1B ) ,
492- "SPACE" => Some ( 0x20 ) ,
493- "PAGEUP" | "PRIOR" => Some ( 0x21 ) ,
494- "PAGEDOWN" | "NEXT" => Some ( 0x22 ) ,
495- "END" => Some ( 0x23 ) ,
496- "HOME" => Some ( VK_HOME ) ,
497- "LEFT" => Some ( 0x25 ) ,
498- "UP" => Some ( 0x26 ) ,
499- "RIGHT" => Some ( 0x27 ) ,
500- "DOWN" => Some ( 0x28 ) ,
501- "INSERT" => Some ( 0x2D ) ,
502- "DELETE" | "DEL" => Some ( 0x2E ) ,
503- key if key. len ( ) == 1 => key. as_bytes ( ) . first ( ) . copied ( ) . map ( i32:: from) ,
504- key if key. starts_with ( 'F' ) => key[ 1 ..]
505- . parse :: < i32 > ( )
506- . ok ( )
507- . filter ( |value| ( 1 ..=24 ) . contains ( value) )
508- . map ( |value| 0x70 + value - 1 ) ,
509- _ => None ,
510- }
511- }
512-
513465fn hotkey_name ( vk : i32 ) -> String {
514466 match vk {
515467 VK_HOME => "Home" . to_owned ( ) ,
0 commit comments