- printf("win_new: %p = %p, %d (%d,%d %dx%d)\n",
- win, dpy, (int)xid,
- win->x, win->y, win->w, win->h);
+
+ if (root) {
+ if (strut_add(root, win))
+ win->type = TYPE_TOOLBAR;
+
+ if (win_prop(win, NET_TYPE) == atoms[NET_DIALOG])
+ win->type = TYPE_DIALOG;
+
+ if (win_prop(win, NET_STATE) == atoms[NET_FULL])
+ win->state = ST_FULL;
+
+ if (XGetTransientForHint(dpy, xid, &trans))
+ win->parent = win_find(dpy, trans, 0);
+
+ XSelectInput(dpy, xid, PropertyChangeMask);
+ }
+
+ printf("win_new: win=%p x11=(%p,%d) state=%x pos=(%d,%d %dx%d) type=%s\n",
+ win, dpy, (int)xid, win->state,
+ win->x, win->y, win->w, win->h,
+ win->type == TYPE_NORMAL ? "normal" :
+ win->type == TYPE_DIALOG ? "dialog" :
+ win->type == TYPE_TOOLBAR ? "toolbar" : "unknown");
+
+ if (root)
+ wm_insert(win);
+