if (status != Success || ret_size != 32 || ret_items != 4)
return 0;
- win->sys->strut.left = ((int*)xdata)[0];
- win->sys->strut.right = ((int*)xdata)[1];
- win->sys->strut.top = ((int*)xdata)[2];
- win->sys->strut.bottom = ((int*)xdata)[3];
+ win->sys->strut.left = ((long*)xdata)[0];
+ win->sys->strut.right = ((long*)xdata)[1];
+ win->sys->strut.top = ((long*)xdata)[2];
+ win->sys->strut.bottom = ((long*)xdata)[3];
struts = list_insert(struts, win);
for (list_t *cur = screens; cur; cur = cur->next)
strut_copy(cur->data, win, 1);
/* Split based on event */
if (type == KeyPress) {
while (XCheckTypedEvent(dpy, KeyPress, xe));
- KeySym sym = XKeycodeToKeysym(dpy, xe->xkey.keycode, 0);
+ KeySym sym = XLookupKeysym(&xe->xkey, 0);
printf("got xe %c %hhx\n", xk2ev(sym), mod2int(mod));
wm_handle_event(win, xk2ev(sym), mod, ptr);
}
printf("map_req: %d\n", type);
if ((win = win_find(dpy,xe->xmaprequest.window,1)) &&
win->state == ST_HIDE) {
+ win->state = ST_SHOW;
if (win_prop(win, NET_STATE) == atoms[NET_FULL])
win->state = ST_FULL;
XSelectInput(win->sys->dpy, win->sys->xid, PropertyChangeMask);
wm_insert(win);
else
wm_update();
- } else
- sys_show(win, ST_SHOW);
+ }
+ sys_show(win, win->state);
}
else if (type == ClientMessage) {
XClientMessageEvent *cme = &xe->xclient;