Optimizing the key lookup to the X11 function key. It is still possible to
remap other keys.
This commit is contained in:
		@ -88,6 +88,12 @@ static Shortcut shortcuts[] = {
 | 
				
			|||||||
 * position for a key.
 | 
					 * position for a key.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * If you want something else but the function keys of X11 (0xFF00 - 0xFFFF)
 | 
				
			||||||
 | 
					 * mapped below, add them to this array.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					static KeySym mappedkeys[] = { -1 };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* key, mask, output, keypad, cursor, crlf */
 | 
					/* key, mask, output, keypad, cursor, crlf */
 | 
				
			||||||
static Key key[] = {
 | 
					static Key key[] = {
 | 
				
			||||||
	/* keysym             mask         string         keypad cursor crlf */
 | 
						/* keysym             mask         string         keypad cursor crlf */
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										14
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								st.c
									
									
									
									
									
								
							@ -2711,6 +2711,20 @@ char*
 | 
				
			|||||||
kmap(KeySym k, uint state) {
 | 
					kmap(KeySym k, uint state) {
 | 
				
			||||||
	uint mask;
 | 
						uint mask;
 | 
				
			||||||
	Key *kp;
 | 
						Key *kp;
 | 
				
			||||||
 | 
						int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Check for mapped keys out of X11 function keys. */
 | 
				
			||||||
 | 
						for(i = 0; i < LEN(mappedkeys); i++) {
 | 
				
			||||||
 | 
							if(mappedkeys[i] == k) {
 | 
				
			||||||
 | 
								fprintf(stderr, "mapped function key.\n");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if(i == LEN(mappedkeys)) {
 | 
				
			||||||
 | 
							if((k & 0xFFFF) < 0xFF00)
 | 
				
			||||||
 | 
								return NULL;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						fprintf(stderr, "Function key.\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for(kp = key; kp < key + LEN(key); kp++) {
 | 
						for(kp = key; kp < key + LEN(key); kp++) {
 | 
				
			||||||
		mask = kp->mask;
 | 
							mask = kp->mask;
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user