x: check we still have an XIC context before accessing it
This commit is contained in:
		
				
					committed by
					
						
						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