Got questions, comments, patches, etc.?
Contact Jason Woofenden
gitweb
/
spectrwm.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
b882ef0
)
XGetWMHints to xcb
author
David Hill
<dhill@conformal.com>
Wed, 11 Jul 2012 04:07:55 +0000
(
00:07
-0400)
committer
Reginald Kennedy
<rk@rejii.com>
Fri, 20 Jul 2012 21:58:32 +0000
(
05:58
+0800)
spectrwm.c
patch
|
blob
|
history
diff --git
a/spectrwm.c
b/spectrwm.c
index
a4759cf
..
7420e87
100644
(file)
--- a/
spectrwm.c
+++ b/
spectrwm.c
@@
-390,7
+390,7
@@
struct ws_win {
XSizeHints sh;
long sh_mask;
XClassHint ch;
XSizeHints sh;
long sh_mask;
XClassHint ch;
- XWMHints *hints;
+ xcb_wm_hints_t hints;
};
TAILQ_HEAD(ws_win_list, ws_win);
};
TAILQ_HEAD(ws_win_list, ws_win);
@@
-6276,9
+6276,9
@@
void
set_child_transient(struct ws_win *win, Window *trans)
{
struct ws_win *parent, *w;
set_child_transient(struct ws_win *win, Window *trans)
{
struct ws_win *parent, *w;
- XWMHints *wmh = NULL;
struct swm_region *r;
struct workspace *ws;
struct swm_region *r;
struct workspace *ws;
+ xcb_wm_hints_t wmh;
parent = find_window(win->transient);
if (parent)
parent = find_window(win->transient);
if (parent)
@@
-6287,24
+6287,18
@@
set_child_transient(struct ws_win *win, Window *trans)
DNPRINTF(SWM_D_MISC, "set_child_transient: parent doesn't exist"
" for 0x%x trans 0x%x\n", win->id, win->transient);
DNPRINTF(SWM_D_MISC, "set_child_transient: parent doesn't exist"
" for 0x%x trans 0x%x\n", win->id, win->transient);
- if (win->hints == NULL) {
- warnx("no hints for 0x%x", win->id);
- return;
- }
-
r = root_to_region(win->wa.root);
ws = r->ws;
/* parent doen't exist in our window list */
TAILQ_FOREACH(w, &ws->winlist, entry) {
r = root_to_region(win->wa.root);
ws = r->ws;
/* parent doen't exist in our window list */
TAILQ_FOREACH(w, &ws->winlist, entry) {
- if (wmh)
- XFree(wmh);
-
- if ((wmh = XGetWMHints(display, w->id)) == NULL) {
+ if (xcb_icccm_get_wm_hints_reply(conn,
+ xcb_icccm_get_wm_hints(conn, w->id),
+ &wmh, NULL) != 1) {
warnx("can't get hints for 0x%x", w->id);
continue;
}
warnx("can't get hints for 0x%x", w->id);
continue;
}
- if (win->hints->window_group != wmh->window_group)
+ if (win->hints.window_group != wmh.window_group)
continue;
w->child_trans = win;
continue;
w->child_trans = win;
@@
-6315,9
+6309,6
@@
set_child_transient(struct ws_win *win, Window *trans)
break;
}
}
break;
}
}
-
- if (wmh)
- XFree(wmh);
}
long
}
long
@@
-6430,7
+6421,9
@@
manage_window(xcb_window_t id)
}
XGetWindowAttributes(display, id, &win->wa);
XGetWMNormalHints(display, id, &win->sh, &win->sh_mask);
}
XGetWindowAttributes(display, id, &win->wa);
XGetWMNormalHints(display, id, &win->sh, &win->sh_mask);
- win->hints = XGetWMHints(display, id);
+ xcb_icccm_get_wm_hints_reply(conn,
+ xcb_icccm_get_wm_hints(conn, id),
+ &win->hints, NULL);
XGetTransientForHint(display, id, &trans);
if (trans) {
win->transient = trans;
XGetTransientForHint(display, id, &trans);
if (trans) {
win->transient = trans;
@@
-6659,11
+6652,6
@@
unmanage_window(struct ws_win *win)
focus_prev(win);
focus_prev(win);
- if (win->hints) {
- XFree(win->hints);
- win->hints = NULL;
- }
-
TAILQ_REMOVE(&win->ws->winlist, win, entry);
TAILQ_INSERT_TAIL(&win->ws->unmanagedlist, win, entry);
}
TAILQ_REMOVE(&win->ws->winlist, win, entry);
TAILQ_INSERT_TAIL(&win->ws->unmanagedlist, win, entry);
}