Adding a way to ignore bits in the state.
This commit is contained in:
		| @@ -104,6 +104,12 @@ static Shortcut shortcuts[] = { | |||||||
|  */ |  */ | ||||||
| static KeySym mappedkeys[] = { -1 }; | static KeySym mappedkeys[] = { -1 }; | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * Which bits of the state should be ignored. By default the state bit for the | ||||||
|  |  * keyboard layout (XK_SWITCH_MOD) is ignored. | ||||||
|  |  */ | ||||||
|  | uint ignoremod = XK_SWITCH_MOD; | ||||||
|  |  | ||||||
| /* 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 */ | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								st.c
									
									
									
									
									
								
							| @@ -61,6 +61,7 @@ | |||||||
| #define DRAW_BUF_SIZ  20*1024 | #define DRAW_BUF_SIZ  20*1024 | ||||||
| #define XK_ANY_MOD    UINT_MAX | #define XK_ANY_MOD    UINT_MAX | ||||||
| #define XK_NO_MOD     0 | #define XK_NO_MOD     0 | ||||||
|  | #define XK_SWITCH_MOD (1<<13) | ||||||
|  |  | ||||||
| #define REDRAW_TIMEOUT (80*1000) /* 80 ms */ | #define REDRAW_TIMEOUT (80*1000) /* 80 ms */ | ||||||
|  |  | ||||||
| @@ -3008,6 +3009,8 @@ focus(XEvent *ev) { | |||||||
|  |  | ||||||
| inline bool | inline bool | ||||||
| match(uint mask, uint state) { | match(uint mask, uint state) { | ||||||
|  | 	state &= ~(ignoremod); | ||||||
|  |  | ||||||
| 	if(mask == XK_NO_MOD && state) | 	if(mask == XK_NO_MOD && state) | ||||||
| 		return false; | 		return false; | ||||||
| 	if(mask != XK_ANY_MOD && mask != XK_NO_MOD && !state) | 	if(mask != XK_ANY_MOD && mask != XK_NO_MOD && !state) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user