diff options
| author | John Collis <john.collis@alliedtelesis.co.nz> | 2020-09-06 17:53:41 +1200 | 
|---|---|---|
| committer | Hiltjo Posthuma <hiltjo@codemadness.org> | 2020-10-18 11:17:11 +0200 | 
| commit | 28b4c822c5c0acec300fdf15c6e3ede9f5e2335d (patch) | |
| tree | b2af1c27a64169cfd7a8807c207d07a6c429bd6c | |
| parent | fa253f077f19b3220c7655b81bd91e52f4367803 (diff) | |
ST: Add WM_ICON_NAME property support
Also added _NET_WM_ICON_NAME.
| -rw-r--r-- | st.c | 9 | ||||
| -rw-r--r-- | win.h | 1 | ||||
| -rw-r--r-- | x.c | 16 | 
3 files changed, 25 insertions, 1 deletions
| @@ -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]); @@ -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); @@ -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); @@ -1580,6 +1581,19 @@ xsetenv(void)  }  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)  {  	XTextProperty prop; | 
