ST: Add WM_ICON_NAME property support
Also added _NET_WM_ICON_NAME. https://git.suckless.org/st/commit/28b4c822c5c0acec300fdf15c6e3ede9f5e2335d.html#h0-1-11 https://git.suckless.org/st/commit/4ef0cbd8b9371f37f7d02ef37b5378b879e6b8bf.html#h0-0-3
This commit is contained in:
parent
835d204593
commit
29b20b54c5
8
st.c
8
st.c
|
@ -2363,7 +2363,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]);
|
||||||
|
|
2
st.h
2
st.h
|
@ -196,7 +196,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;
|
||||||
#if NETWMICON_PATCH
|
#if NETWMICON_PATCH
|
||||||
Atom netwmicon;
|
Atom netwmicon;
|
||||||
#endif // NETWMICON_PATCH
|
#endif // NETWMICON_PATCH
|
||||||
|
|
1
win.h
1
win.h
|
@ -40,6 +40,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);
|
||||||
|
|
14
x.c
14
x.c
|
@ -1424,6 +1424,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);
|
||||||
|
|
||||||
#if NETWMICON_PATCH
|
#if NETWMICON_PATCH
|
||||||
|
@ -2141,6 +2142,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)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue