ST: Add WM_ICON_NAME property support
Also added _NET_WM_ICON_NAME.
This commit is contained in:
		
							parent
							
								
									fa253f077f
								
							
						
					
					
						commit
						28b4c822c5
					
				
							
								
								
									
										9
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								st.c
									
									
									
									
									
								
							| @ -1844,6 +1844,7 @@ strhandle(void) | ||||
| { | ||||
| 	char *p = NULL, *dec; | ||||
| 	int j, narg, par; | ||||
| 	static int winname = 0; | ||||
| 
 | ||||
| 	term.esc &= ~(ESC_STR_END|ESC_STR); | ||||
| 	strparse(); | ||||
| @ -1853,7 +1854,15 @@ strhandle(void) | ||||
| 	case ']': /* OSC -- Operating System Command */ | ||||
| 		switch (par) { | ||||
| 		case 0: | ||||
| 			if (narg > 1) { | ||||
| 				xsettitle(strescseq.args[1]); | ||||
| 				xseticontitle(strescseq.args[1]); | ||||
| 			} | ||||
| 			return; | ||||
| 		case 1: | ||||
| 			if (narg > 1) | ||||
| 				xseticontitle(strescseq.args[1]); | ||||
| 			return; | ||||
| 		case 2: | ||||
| 			if (narg > 1) | ||||
| 				xsettitle(strescseq.args[1]); | ||||
|  | ||||
							
								
								
									
										1
									
								
								win.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								win.h
									
									
									
									
									
								
							| @ -30,6 +30,7 @@ void xdrawline(Line, int, int, int); | ||||
| void xfinishdraw(void); | ||||
| void xloadcols(void); | ||||
| int xsetcolorname(int, const char *); | ||||
| void xseticontitle(char *); | ||||
| void xsettitle(char *); | ||||
| int xsetcursor(int); | ||||
| void xsetmode(int, unsigned int); | ||||
|  | ||||
							
								
								
									
										16
									
								
								x.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								x.c
									
									
									
									
									
								
							| @ -93,7 +93,7 @@ typedef struct { | ||||
| 	Window win; | ||||
| 	Drawable buf; | ||||
| 	GlyphFontSpec *specbuf; /* font spec buffer used for rendering */ | ||||
| 	Atom xembed, wmdeletewin, netwmname, netwmpid; | ||||
| 	Atom xembed, wmdeletewin, netwmname, netwmiconname, netwmpid; | ||||
| 	struct { | ||||
| 		XIM xim; | ||||
| 		XIC xic; | ||||
| @ -1186,6 +1186,7 @@ xinit(int cols, int rows) | ||||
| 	xw.xembed = XInternAtom(xw.dpy, "_XEMBED", False); | ||||
| 	xw.wmdeletewin = XInternAtom(xw.dpy, "WM_DELETE_WINDOW", False); | ||||
| 	xw.netwmname = XInternAtom(xw.dpy, "_NET_WM_NAME", False); | ||||
| 	xw.netwmiconname = XInternAtom(xw.dpy, "_NET_WM_ICON_NAME", False); | ||||
| 	XSetWMProtocols(xw.dpy, xw.win, &xw.wmdeletewin, 1); | ||||
| 
 | ||||
| 	xw.netwmpid = XInternAtom(xw.dpy, "_NET_WM_PID", False); | ||||
| @ -1579,6 +1580,19 @@ xsetenv(void) | ||||
| 	setenv("WINDOWID", buf, 1); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| xseticontitle(char *p) | ||||
| { | ||||
| 	XTextProperty prop; | ||||
| 	DEFAULT(p, opt_title); | ||||
| 
 | ||||
| 	Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle, | ||||
| 			&prop); | ||||
| 	XSetWMIconName(xw.dpy, xw.win, &prop); | ||||
| 	XSetTextProperty(xw.dpy, xw.win, &prop, xw.netwmiconname); | ||||
| 	XFree(prop.value); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| xsettitle(char *p) | ||||
| { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user