ungrab keyboard when no notification
This doesn't apply to history key.
This commit is contained in:
		
							parent
							
								
									bab419f56f
								
							
						
					
					
						commit
						a84e558d82
					
				
							
								
								
									
										42
									
								
								dunst.c
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								dunst.c
									
									
									
									
									
								
							| @ -893,6 +893,20 @@ void run(void) | |||||||
| 
 | 
 | ||||||
| void hide_win() | void hide_win() | ||||||
| { | { | ||||||
|  |         KeyCode code; | ||||||
|  |         Window root; | ||||||
|  |         root = RootWindow(dc->dpy, DefaultScreen(dc->dpy)); | ||||||
|  | 
 | ||||||
|  |         if (key != NoSymbol) { | ||||||
|  |                 code = XKeysymToKeycode(dc->dpy, key); | ||||||
|  |                 XUngrabKey(dc->dpy, code, mask, root); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if (all_key != NoSymbol) { | ||||||
|  |                 code = XKeysymToKeycode(dc->dpy, all_key); | ||||||
|  |                 XUngrabKey(dc->dpy, code, mask, root); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         XUngrabButton(dc->dpy, AnyButton, AnyModifier, win); |         XUngrabButton(dc->dpy, AnyButton, AnyModifier, win); | ||||||
|         XUnmapWindow(dc->dpy, win); |         XUnmapWindow(dc->dpy, win); | ||||||
|         XFlush(dc->dpy); |         XFlush(dc->dpy); | ||||||
| @ -962,14 +976,26 @@ void setup(void) | |||||||
|                           CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa); |                           CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa); | ||||||
| 
 | 
 | ||||||
|         /* grab keys */ |         /* grab keys */ | ||||||
|         if (key != NoSymbol) { |         if (history_key != NoSymbol) { | ||||||
|                 code = XKeysymToKeycode(dc->dpy, key); |                 code = XKeysymToKeycode(dc->dpy, history_key); | ||||||
|                 XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync, |                 XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync, | ||||||
|                          GrabModeAsync); |                          GrabModeAsync); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         if (history_key != NoSymbol) { | } | ||||||
|                 code = XKeysymToKeycode(dc->dpy, history_key); | 
 | ||||||
|  | void map_win(void) | ||||||
|  | { | ||||||
|  |         /* window is already mapped or there's nothing to show */ | ||||||
|  |         if (visible || l_is_empty(displayed_notifications)) { | ||||||
|  |                 return; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         KeyCode code; | ||||||
|  |         Window root; | ||||||
|  |         root = RootWindow(dc->dpy, DefaultScreen(dc->dpy)); | ||||||
|  |         if (key != NoSymbol) { | ||||||
|  |                 code = XKeysymToKeycode(dc->dpy, key); | ||||||
|                 XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync, |                 XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync, | ||||||
|                          GrabModeAsync); |                          GrabModeAsync); | ||||||
|         } |         } | ||||||
| @ -979,14 +1005,6 @@ void setup(void) | |||||||
|                 XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync, |                 XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync, | ||||||
|                          GrabModeAsync); |                          GrabModeAsync); | ||||||
|         } |         } | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void map_win(void) |  | ||||||
| { |  | ||||||
|         /* window is already mapped or there's nothing to show */ |  | ||||||
|         if (visible || l_is_empty(displayed_notifications)) { |  | ||||||
|                 return; |  | ||||||
|         } |  | ||||||
| 
 | 
 | ||||||
|         update_screen_info(); |         update_screen_info(); | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Sascha Kruse
						Sascha Kruse