Compare commits
	
		
			5 Commits
		
	
	
		
			v1.42.1
			...
			squeekboar
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e2b20dc262 | |||
| a305ad58eb | |||
| 48c38b68ee | |||
| 1ff31c0b6b | |||
| 37e608ec74 | 
							
								
								
									
										9
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								NEWS
									
									
									
									
									
								
							@ -1,3 +1,12 @@
 | 
				
			|||||||
 | 
					squeekboard 1.42.2
 | 
				
			||||||
 | 
					------------------
 | 
				
			||||||
 | 
					Released November 2024
 | 
				
			||||||
 | 
					* Fixes:
 | 
				
			||||||
 | 
					    * Compatibility: Squeekboard should now work better with apps that do not use the text-input-protocol of Wayland and rely on specific keycodes being assigned to specific characters/functions.
 | 
				
			||||||
 | 
					    * Documentation: The recommended settings for creating layouts while using Phoc in a nested session, have been updated to work correctly with the changes to the scaling-algorithm.
 | 
				
			||||||
 | 
					* Contributors:
 | 
				
			||||||
 | 
					    * MoonlightWave-12
 | 
				
			||||||
 | 
					
 | 
				
			||||||
squeekboard 1.42.1
 | 
					squeekboard 1.42.1
 | 
				
			||||||
------------------
 | 
					------------------
 | 
				
			||||||
Released October 2024
 | 
					Released October 2024
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										8
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							@ -1,3 +1,11 @@
 | 
				
			|||||||
 | 
					squeekboard (1.42.2) experimental; urgency=medium
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  * keyboard.rs: Add more keycodes and sort those
 | 
				
			||||||
 | 
					  * keyboard.rs: Add keycode to the keymap with BackSpace if there is no other
 | 
				
			||||||
 | 
					  * doc/layouts.md: Update recommended settings for creating layouts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 -- MoonlightWave-12 <135532-MoonlightWave-12@users.noreply.gitlab.gnome.org>  Wed, 06 Nov 2024 11:24:22 +0100
 | 
				
			||||||
 | 
					
 | 
				
			||||||
squeekboard (1.42.1) experimental; urgency=medium
 | 
					squeekboard (1.42.1) experimental; urgency=medium
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  [ Sebastian Krzyszkowiak ]
 | 
					  [ Sebastian Krzyszkowiak ]
 | 
				
			||||||
 | 
				
			|||||||
@ -50,6 +50,9 @@ For testing the basic/compact shape:
 | 
				
			|||||||
```sh
 | 
					```sh
 | 
				
			||||||
[output:WL-1]
 | 
					[output:WL-1]
 | 
				
			||||||
mode = 360x720
 | 
					mode = 360x720
 | 
				
			||||||
 | 
					phys_width = 60
 | 
				
			||||||
 | 
					phys_height = 120
 | 
				
			||||||
 | 
					scale = 1.00
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For testing the wide shape:
 | 
					For testing the wide shape:
 | 
				
			||||||
@ -57,8 +60,10 @@ For testing the wide shape:
 | 
				
			|||||||
```sh
 | 
					```sh
 | 
				
			||||||
[output:WL-1]
 | 
					[output:WL-1]
 | 
				
			||||||
mode = 1280x800
 | 
					mode = 1280x800
 | 
				
			||||||
 | 
					phys_width = 104
 | 
				
			||||||
 | 
					phys_height = 65
 | 
				
			||||||
 | 
					scale = 1.00
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
Make sure there is no `phys_height` or `phys_width` set.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Layout-stretching
 | 
					### Layout-stretching
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
project(
 | 
					project(
 | 
				
			||||||
    'squeekboard',
 | 
					    'squeekboard',
 | 
				
			||||||
    'c', 'rust',
 | 
					    'c', 'rust',
 | 
				
			||||||
    version: '1.42.1',
 | 
					    version: '1.42.2',
 | 
				
			||||||
    license: 'GPLv3',
 | 
					    license: 'GPLv3',
 | 
				
			||||||
    meson_version: '>=1.0.0',
 | 
					    meson_version: '>=1.0.0',
 | 
				
			||||||
    default_options: [
 | 
					    default_options: [
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										154
									
								
								src/keyboard.rs
									
									
									
									
									
								
							
							
						
						
									
										154
									
								
								src/keyboard.rs
									
									
									
									
									
								
							@ -116,15 +116,159 @@ pub fn generate_keycodes<'a, C: IntoIterator<Item=String>>(
 | 
				
			|||||||
                   KEY_BACKSLASH, KEY_Z, KEY_X, KEY_C, KEY_V, KEY_B, KEY_N,
 | 
					                   KEY_BACKSLASH, KEY_Z, KEY_X, KEY_C, KEY_V, KEY_B, KEY_N,
 | 
				
			||||||
                   KEY_M, KEY_COMMA, KEY_DOT, KEY_SLASH];
 | 
					                   KEY_M, KEY_COMMA, KEY_DOT, KEY_SLASH];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    HashMap::from_iter(
 | 
					    let keycode_offset = 8;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let mut keycode_map = HashMap::from_iter(
 | 
				
			||||||
        // Sort to remove a source of indeterminism in keycode assignment.
 | 
					        // Sort to remove a source of indeterminism in keycode assignment.
 | 
				
			||||||
        sorted(key_names.into_iter())
 | 
					        sorted(key_names.into_iter())
 | 
				
			||||||
            .zip(util::cycle_count((9..255).filter(|x| allowed.contains(&(x - 8)))))
 | 
					            .zip(util::cycle_count((9..255).filter(|x| allowed.contains(&(x - keycode_offset)))))
 | 
				
			||||||
            .map(|(name, (code, keymap_idx))| (
 | 
					            .map(|(name, (mut code, mut keymap_idx))| {
 | 
				
			||||||
 | 
					                // Some apps expect specific keycodes for certain characters/functions.
 | 
				
			||||||
 | 
					                // Reserve the first 2 keymaps (0 and 1) for sorting those manually,
 | 
				
			||||||
 | 
					                // and use keymap_idx 2 and higher for other keycodes,
 | 
				
			||||||
 | 
					                // to not assign identical keycodes twice.
 | 
				
			||||||
 | 
					                // TODO: Add the "Shift"-modifier for keycodes on keymap 1.
 | 
				
			||||||
 | 
					                keymap_idx = keymap_idx + 2;
 | 
				
			||||||
 | 
					                if name == "1"         { code = KEY_1           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "2"         { code = KEY_2           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "3"         { code = KEY_3           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "4"         { code = KEY_4           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "5"         { code = KEY_5           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "6"         { code = KEY_6           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "7"         { code = KEY_7           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "8"         { code = KEY_8           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "9"         { code = KEY_9           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "0"         { code = KEY_0           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "a"         { code = KEY_A           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "b"         { code = KEY_B           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "c"         { code = KEY_C           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "d"         { code = KEY_D           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "e"         { code = KEY_E           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "f"         { code = KEY_F           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "g"         { code = KEY_G           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "h"         { code = KEY_H           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "i"         { code = KEY_I           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "j"         { code = KEY_J           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "k"         { code = KEY_K           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "l"         { code = KEY_L           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "m"         { code = KEY_M           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "n"         { code = KEY_N           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "o"         { code = KEY_O           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "p"         { code = KEY_P           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "q"         { code = KEY_Q           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "r"         { code = KEY_R           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "s"         { code = KEY_S           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "t"         { code = KEY_T           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "u"         { code = KEY_U           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "v"         { code = KEY_V           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "w"         { code = KEY_W           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "x"         { code = KEY_X           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "y"         { code = KEY_Y           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "z"         { code = KEY_Z           + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "A"         { code = KEY_A           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "B"         { code = KEY_B           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "C"         { code = KEY_C           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "D"         { code = KEY_D           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "E"         { code = KEY_E           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "F"         { code = KEY_F           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "G"         { code = KEY_G           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "H"         { code = KEY_H           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "I"         { code = KEY_I           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "J"         { code = KEY_J           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "K"         { code = KEY_K           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "L"         { code = KEY_L           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "M"         { code = KEY_M           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "N"         { code = KEY_N           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "O"         { code = KEY_O           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "P"         { code = KEY_P           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "Q"         { code = KEY_Q           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "R"         { code = KEY_R           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "S"         { code = KEY_S           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "T"         { code = KEY_T           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U"         { code = KEY_U           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "V"         { code = KEY_V           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "W"         { code = KEY_W           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "X"         { code = KEY_X           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "Y"         { code = KEY_Y           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "Z"         { code = KEY_Z           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U0021"     { code = KEY_1           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U0040"     { code = KEY_2           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U0023"     { code = KEY_3           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U0024"     { code = KEY_4           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U0025"     { code = KEY_5           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U005E"     { code = KEY_6           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U0026"     { code = KEY_7           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U002A"     { code = KEY_8           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U0028"     { code = KEY_9           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U0029"     { code = KEY_0           + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U002D"     { code = KEY_MINUS       + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "U005F"     { code = KEY_MINUS       + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U003D"     { code = KEY_EQUAL       + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "U002B"     { code = KEY_EQUAL       + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U005B"     { code = KEY_LEFTBRACE   + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "U007B"     { code = KEY_LEFTBRACE   + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U005D"     { code = KEY_RIGHTBRACE  + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "U007D"     { code = KEY_RIGHTBRACE  + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U003B"     { code = KEY_SEMICOLON   + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "U003A"     { code = KEY_SEMICOLON   + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U0027"     { code = KEY_APOSTROPHE  + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "U0022"     { code = KEY_APOSTROPHE  + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U00B4"     { code = KEY_GRAVE       + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "U007E"     { code = KEY_GRAVE       + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U005C"     { code = KEY_BACKSLASH   + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "U007C"     { code = KEY_BACKSLASH   + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U002C"     { code = KEY_COMMA       + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "U003C"     { code = KEY_COMMA       + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U002E"     { code = KEY_DOT         + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "U003E"     { code = KEY_DOT         + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U002F"     { code = KEY_SLASH       + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "U003F"     { code = KEY_SLASH       + keycode_offset; keymap_idx = 1 }
 | 
				
			||||||
 | 
					                if name == "U0020"     { code = KEY_SPACE       + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "BackSpace" { code = KEY_BACKSPACE   + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "Delete"    { code = KEY_DELETE      + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "Down"      { code = KEY_DOWN        + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "Left"      { code = KEY_LEFT        + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "Right"     { code = KEY_RIGHT       + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "Up"        { code = KEY_UP          + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "End"       { code = KEY_END         + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "Escape"    { code = KEY_ESC         + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "F1"        { code = KEY_F1          + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "F2"        { code = KEY_F2          + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "F3"        { code = KEY_F3          + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "F4"        { code = KEY_F4          + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "F5"        { code = KEY_F5          + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "F6"        { code = KEY_F6          + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "F7"        { code = KEY_F7          + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "F8"        { code = KEY_F8          + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "F9"        { code = KEY_F9          + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "F10"       { code = KEY_F10         + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "F11"       { code = KEY_F11         + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "F12"       { code = KEY_F12         + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "Home"      { code = KEY_HOME        + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "Insert"    { code = KEY_INSERT      + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "Menu"      { code = KEY_MENU        + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "Page_Down" { code = KEY_PAGEDOWN    + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "Page_Up"   { code = KEY_PAGEUP      + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "Pause"     { code = KEY_PAUSE       + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "Return"    { code = KEY_ENTER       + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					                if name == "Tab"       { code = KEY_TAB         + keycode_offset; keymap_idx = 0 }
 | 
				
			||||||
 | 
					            (
 | 
				
			||||||
                String::from(name),
 | 
					                String::from(name),
 | 
				
			||||||
                KeyCode { code, keymap_idx },
 | 
					                KeyCode { code, keymap_idx },
 | 
				
			||||||
            ))
 | 
					            )})
 | 
				
			||||||
    )
 | 
					    );
 | 
				
			||||||
 | 
					    // Workaround: BackSpace does not work with `tools/entry.py` (made with GTK3),
 | 
				
			||||||
 | 
					    // if the keymap with BackSpace does not contain any other keycodes.
 | 
				
			||||||
 | 
					    // This should only happen for the emoji-layout or incomplete custom-layouts,
 | 
				
			||||||
 | 
					    // because the layout-tests for normal layouts check for the presence of a button for Return.
 | 
				
			||||||
 | 
					    // This does add an "Unknown"-keycode, if necessary, to let BackSpace work anyway.
 | 
				
			||||||
 | 
					    if !HashMap::contains_key(&keycode_map, &"Return".to_string()) {
 | 
				
			||||||
 | 
					        HashMap::insert(&mut keycode_map,
 | 
				
			||||||
 | 
					                        "Unknown".to_string(),
 | 
				
			||||||
 | 
					                        KeyCode { code: KEY_UNKNOWN + keycode_offset, keymap_idx: 0 }
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    keycode_map
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[derive(Debug)]
 | 
					#[derive(Debug)]
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user