Remove IS_IN unsafe code, by using AtomicBool
This commit is contained in:
		
							parent
							
								
									0c0051d59a
								
							
						
					
					
						commit
						230f74da2e
					
				| @ -66,7 +66,7 @@ fn get_key_state(key: enigo::Key) -> bool { | ||||
|     ENIGO.lock().unwrap().get_key_state(key) | ||||
| } | ||||
| 
 | ||||
| static mut IS_IN: bool = false; | ||||
| static IS_IN: AtomicBool = AtomicBool::new(false); | ||||
| static KEYBOARD_HOOKED: AtomicBool = AtomicBool::new(false); | ||||
| static SERVER_KEYBOARD_ENABLED: AtomicBool = AtomicBool::new(true); | ||||
| static SERVER_FILE_TRANSFER_ENABLED: AtomicBool = AtomicBool::new(true); | ||||
| @ -266,7 +266,7 @@ impl Handler { | ||||
|             std::env::set_var("KEYBOARD_ONLY", "y"); // pass to rdev
 | ||||
|             use rdev::{EventType::*, *}; | ||||
|             let func = move |evt: Event| { | ||||
|                 if unsafe { !IS_IN || !SERVER_KEYBOARD_ENABLED.load(Ordering::SeqCst) } { | ||||
|                 if !IS_IN.load(Ordering::SeqCst) || !SERVER_KEYBOARD_ENABLED.load(Ordering::SeqCst) { | ||||
|                     return; | ||||
|                 } | ||||
|                 let (key, down) = match evt.event_type { | ||||
| @ -865,17 +865,13 @@ impl Handler { | ||||
|     fn enter(&mut self) { | ||||
|         #[cfg(windows)] | ||||
|         crate::platform::windows::stop_system_key_propagate(true); | ||||
|         unsafe { | ||||
|             IS_IN = true; | ||||
|         } | ||||
|         IS_IN.store(true, Ordering::SeqCst); | ||||
|     } | ||||
| 
 | ||||
|     fn leave(&mut self) { | ||||
|         #[cfg(windows)] | ||||
|         crate::platform::windows::stop_system_key_propagate(false); | ||||
|         unsafe { | ||||
|             IS_IN = false; | ||||
|         } | ||||
|         IS_IN.store(false, Ordering::SeqCst); | ||||
|     } | ||||
| 
 | ||||
|     fn send_mouse( | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user