compose key patch. thx federico luna.
This commit is contained in:
		
							parent
							
								
									6faedce53a
								
							
						
					
					
						commit
						3470e3af23
					
				
							
								
								
									
										14
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								st.c
									
									
									
									
									
								
							| @ -107,6 +107,8 @@ typedef struct { | ||||
| 	Colormap cmap; | ||||
| 	Window win; | ||||
| 	Pixmap buf; | ||||
| 	XIM xim; | ||||
| 	XIC xic; | ||||
| 	int scr; | ||||
| 	int w;	/* window width	 */ | ||||
| 	int h;	/* window height */ | ||||
| @ -1228,6 +1230,13 @@ xinit(void) { | ||||
| 			| CWColormap, | ||||
| 			&attrs); | ||||
| 	xw.buf = XCreatePixmap(xw.dis, xw.win, xw.bufw, xw.bufh, XDefaultDepth(xw.dis, xw.scr)); | ||||
| 
 | ||||
| 
 | ||||
| 	/* input methods */ | ||||
| 	xw.xim = XOpenIM(xw.dis, NULL, NULL, NULL); | ||||
| 	xw.xic = XCreateIC(xw.xim, XNInputStyle, XIMPreeditNothing  | ||||
| 					   | XIMStatusNothing, XNClientWindow, xw.win,  | ||||
| 					   XNFocusWindow, xw.win, NULL); | ||||
| 	/* gc */ | ||||
| 	dc.gc = XCreateGC(xw.dis, xw.win, 0, NULL); | ||||
| 	 | ||||
| @ -1411,10 +1420,11 @@ kpress(XEvent *ev) { | ||||
| 	int len; | ||||
| 	int meta; | ||||
| 	int shift; | ||||
| 	Status status; | ||||
| 
 | ||||
| 	meta = e->state & Mod1Mask; | ||||
| 	shift = e->state & ShiftMask; | ||||
| 	len = XLookupString(e, buf, sizeof(buf), &ksym, NULL); | ||||
| 	len = XmbLookupString(xw.xic, e, buf, sizeof(buf), &ksym, &status); | ||||
| 
 | ||||
| 	if((customkey = kmap(ksym))) | ||||
| 		ttywrite(customkey, strlen(customkey)); | ||||
| @ -1484,6 +1494,8 @@ run(void) { | ||||
| 		} | ||||
| 		while(XPending(xw.dis)) { | ||||
| 			XNextEvent(xw.dis, &ev); | ||||
| 			if (XFilterEvent(&ev, xw.win)) | ||||
| 				continue; | ||||
| 			if(handler[ev.type]) | ||||
| 				(handler[ev.type])(&ev); | ||||
| 		} | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Aurélien Aptel
						Aurélien Aptel