CFLAGS+= -Wall -g -D_GNU_SOURCE -I.
CFLAGS+= -DSWM_LIB=\"$(LIBDIR)/libswmhack.so.$(LVERS)\"
-LDADD+= -lX11 -lXrandr -lXtst -lX11-xcb -lxcb -lxcb-icccm -lxcb-randr -lxcb-keysyms
+LDADD+= -lX11 -lXrandr -lXtst -lX11-xcb -lxcb -lxcb-icccm -lxcb-randr -lxcb-keysyms -lxcb-util
PREFIX?= /usr/local
BINDIR?= $(PREFIX)/bin
ws->cur_layout = &layouts[0];
stack();
-
+
a.id = SWM_ARG_ID_FOCUSCUR;
focus(r, &a);
unmap_window(r->ws->focus);
update_iconic(r->ws->focus, 1);
stack();
-
+
r->ws->focus = NULL;
a.id = SWM_ARG_ID_FOCUSCUR;
focus(r, &a);
break;
}
free(evt);
- }
+ }
if (time) {
do_sync();
update_window(win);
buttonrelease = 0;
while ((evt = xcb_poll_for_event(conn)) && buttonrelease != 1) {
- /*
+ /*
XMaskEvent(display, MOUSEMASK | ExposureMask |
SubstructureRedirectMask, &ev);
- */
+ */
switch (XCB_EVENT_RESPONSE_TYPE(evt)) {
case XCB_BUTTON_RELEASE:
buttonrelease = 1;
else
xcb_randr_set_screen_size(conn, e->root, e->width,
e->height, e->mwidth, e->mheight);
-
+
num_screens = xcb_setup_roots_length(xcb_get_setup(conn));
/* silly event doesn't include the screen index */
for (i = 0; i < num_screens; i++)
event_handle(xcb_generic_event_t *evt)
{
uint8_t type = XCB_EVENT_RESPONSE_TYPE(evt);
-
+
if (type == 0)
{
/* XXX - handle error */
EVENT(XCB_UNMAP_NOTIFY, unmapnotify);
EVENT(XCB_VISIBILITY_NOTIFY, visibilitynotify);
#undef EVENT
- }
+ }
if (type - xrandr_eventbase == XCB_RANDR_SCREEN_CHANGE_NOTIFY)
screenchange((void *)evt);
}
event_handle(evt);
free(evt);
}
-
+
if (active_wm())
errx(1, "other wm running");
xcb_aux_sync(conn);
-
+
setup_globals();
setup_screens();
setup_keys();