Introduction
Introduction Statistics Contact Development Disclaimer Help
Making tabbed convert the title string to native. - tabbed - tab interface for …
git clone git://git.suckless.org/tabbed
Log
Files
Refs
README
LICENSE
---
commit 2db44155243b40a56ea675ac526f982441c34c26
parent 66021e959ca27b9be90e1440592812345404a452
Author: Christoph Lohmann <[email protected]>
Date: Wed, 16 Jan 2013 18:33:50 +0100
Making tabbed convert the title string to native.
Thanks "Markus Wichmann" <[email protected]>!
Diffstat:
M tabbed.c | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
---
diff --git a/tabbed.c b/tabbed.c
@@ -129,6 +129,7 @@ static void unmanage(int c);
static void updatenumlockmask(void);
static void updatetitle(int c);
static int xerror(Display *dpy, XErrorEvent *ee);
+static void xsettitle(Window w, const char *str);
/* variables */
static int screen;
@@ -423,7 +424,7 @@ focus(int c) {
for(i = 0, n = strlen(buf); cmd[i] && n < sizeof(buf); i++)
n += snprintf(&buf[n], sizeof(buf) - n, " %s", cmd[i]);
- XStoreName(dpy, win, buf);
+ xsettitle(win, buf);
XRaiseWindow(dpy, win);
return;
@@ -437,7 +438,7 @@ focus(int c) {
XSetInputFocus(dpy, clients[c]->win, RevertToParent, CurrentTime);
sendxembed(c, XEMBED_FOCUS_IN, XEMBED_FOCUS_CURRENT, 0, 0);
sendxembed(c, XEMBED_WINDOW_ACTIVATE, 0, 0, 0);
- XStoreName(dpy, win, clients[c]->name);
+ xsettitle(win, clients[c]->name);
/* If sel is already c, change nothing. */
if(sel != c) {
@@ -1051,7 +1052,7 @@ updatetitle(int c) {
clients[c]->name, sizeof(clients[c]->name));
}
if(sel == c)
- XStoreName(dpy, win, clients[c]->name);
+ xsettitle(win, clients[c]->name);
drawbar();
}
@@ -1085,6 +1086,18 @@ xerror(Display *dpy, XErrorEvent *ee) {
return xerrorxlib(dpy, ee); /* may call exit */
}
+void
+xsettitle(Window w, const char *str) {
+ XTextProperty xtp;
+
+ if(XmbTextListToTextProperty(dpy, (char **)&str, 1, XCompoundTextStyle,
+ &xtp) == Success) {
+ XSetTextProperty(dpy, w, &xtp, wmatom[WMName]);
+ XSetTextProperty(dpy, w, &xtp, XA_WM_NAME);
+ XFree(xtp.value);
+ }
+}
+
char *argv0;
void
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.