if ((wmhint = XGetWMHints(ob_display, window))) {
if ((wmhint->flags & StateHint) &&
wmhint->initial_state == WithdrawnState) {
- slit_add(window, wmhint, &attrib);
+ slit_add(window, wmhint);
grab_server(FALSE);
XFree(wmhint);
return;
g_hash_table_destroy(slit_map);
}
-void slit_add(Window win, XWMHints *wmhints, XWindowAttributes *attrib)
+void slit_add(Window win, XWMHints *wmhints)
{
Slit *s;
SlitApp *app;
+ XWindowAttributes attrib;
/* XXX pick a slit */
s = &slit[0];
app->icon_win = (wmhints->flags & IconWindowHint) ?
wmhints->icon_window : win;
- app->w = attrib->width;
- app->h = attrib->height;
+ if (XGetWindowAttributes(ob_display, app->icon_win, &attrib)) {
+ app->w = attrib.width;
+ app->h = attrib.height;
+ } else {
+ app->w = app->h = 64;
+ }
s->slit_apps = g_list_append(s->slit_apps, app);
slit_configure(s);
void slit_configure_all();
void slit_hide(Slit *self, gboolean hide);
-void slit_add(Window win, XWMHints *wmhints, XWindowAttributes *attrib);
+void slit_add(Window win, XWMHints *wmhints);
void slit_remove_all();
void slit_remove(SlitApp *app, gboolean reparent);