Solution try for #3
This commit is contained in:
		
							parent
							
								
									5858c4db33
								
							
						
					
					
						commit
						48e2287773
					
				
							
								
								
									
										24
									
								
								src/input.rs
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								src/input.rs
									
									
									
									
									
								
							| @ -3,11 +3,14 @@ use gdk; | |||||||
| use gdk::EventKey; | use gdk::EventKey; | ||||||
| use phf; | use phf; | ||||||
| 
 | 
 | ||||||
|  | use std::ascii::AsciiExt; | ||||||
|  | 
 | ||||||
| include!(concat!(env!("OUT_DIR"), "/key_map_table.rs")); | include!(concat!(env!("OUT_DIR"), "/key_map_table.rs")); | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| pub fn keyval_to_input_string(in_str: &str, state: gdk::ModifierType) -> String { | pub fn keyval_to_input_string(in_str: &str, in_state: gdk::ModifierType) -> String { | ||||||
|     let mut val = in_str; |     let mut val = in_str; | ||||||
|  |     let mut state = in_state; | ||||||
|     let mut input = String::new(); |     let mut input = String::new(); | ||||||
| 
 | 
 | ||||||
|     // CTRL-^ and CTRL-@ don't work in the normal way.
 |     // CTRL-^ and CTRL-@ don't work in the normal way.
 | ||||||
| @ -20,11 +23,24 @@ pub fn keyval_to_input_string(in_str: &str, state: gdk::ModifierType) -> String | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if state.contains(gdk::SHIFT_MASK) { |     let chars: Vec<char> = in_str.chars().collect(); | ||||||
|         if val != "\"" { | 
 | ||||||
|             input.push_str("S-"); |     if chars.len() == 1 { | ||||||
|  |         let ch = chars[0]; | ||||||
|  | 
 | ||||||
|  |         // Remove SHIFT
 | ||||||
|  |         if ch.is_ascii() && !ch.is_alphanumeric() { | ||||||
|  |             state.remove(gdk::SHIFT_MASK); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     if val == "<" { | ||||||
|  |         val = "lt"; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if state.contains(gdk::SHIFT_MASK) { | ||||||
|  |         input.push_str("S-"); | ||||||
|  |     } | ||||||
|     if state.contains(gdk::CONTROL_MASK) { |     if state.contains(gdk::CONTROL_MASK) { | ||||||
|         input.push_str("C-"); |         input.push_str("C-"); | ||||||
|     } |     } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 daa
						daa