ST: Add WM_ICON_NAME property support
Also added _NET_WM_ICON_NAME.
This commit is contained in:
		
				
					committed by
					
						
						Hiltjo Posthuma
					
				
			
			
				
	
			
			
			
						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)
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user