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