x: check we still have an XIC context before accessing it
This commit is contained in:
		
				
					committed by
					
						 Hiltjo Posthuma
						Hiltjo Posthuma
					
				
			
			
				
	
			
			
			
						parent
						
							2cb539142b
						
					
				
				
					commit
					cd785755f2
				
			
							
								
								
									
										7
									
								
								x.c
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								x.c
									
									
									
									
									
								
							| @@ -1061,6 +1061,7 @@ void | ||||
| ximdestroy(XIM xim, XPointer client, XPointer call) | ||||
| { | ||||
| 	xw.ime.xim = NULL; | ||||
| 	xw.ime.xic = NULL; | ||||
| 	XRegisterIMInstantiateCallback(xw.dpy, NULL, NULL, NULL, | ||||
| 					ximinstantiate, NULL); | ||||
| 	XFree(xw.ime.spotlist); | ||||
| @@ -1692,13 +1693,15 @@ focus(XEvent *ev) | ||||
| 		return; | ||||
|  | ||||
| 	if (ev->type == FocusIn) { | ||||
| 		XSetICFocus(xw.ime.xic); | ||||
| 		if (xw.ime.xic) | ||||
| 			XSetICFocus(xw.ime.xic); | ||||
| 		win.mode |= MODE_FOCUSED; | ||||
| 		xseturgency(0); | ||||
| 		if (IS_SET(MODE_FOCUS)) | ||||
| 			ttywrite("\033[I", 3, 0); | ||||
| 	} else { | ||||
| 		XUnsetICFocus(xw.ime.xic); | ||||
| 		if (xw.ime.xic) | ||||
| 			XUnsetICFocus(xw.ime.xic); | ||||
| 		win.mode &= ~MODE_FOCUSED; | ||||
| 		if (IS_SET(MODE_FOCUS)) | ||||
| 			ttywrite("\033[O", 3, 0); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user