JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
convert dumpwins() to XCB
[spectrwm.git] / spectrwm.c
index 6f83f62..ef20ce0 100644 (file)
@@ -637,6 +637,7 @@ map_window_raised(xcb_window_t win)
                XCB_CONFIG_WINDOW_STACK_MODE, &val);
 
        xcb_map_window(conn, win);      
+       xcb_flush(conn);
 }
 
 xcb_atom_t
@@ -1122,9 +1123,10 @@ xrandr_geteventname(XEvent *e)
 void
 dumpwins(struct swm_region *r, union arg *args)
 {
-       struct ws_win           *win;
-       uint16_t                state;
-       XWindowAttributes       wa;
+       struct ws_win                           *win;
+       uint16_t                                state;
+       xcb_get_window_attributes_cookie_t      c;
+       xcb_get_window_attributes_reply_t       *r;
 
        if (r->ws == NULL) {
                warnx("dumpwins: invalid workspace");
@@ -1132,26 +1134,33 @@ dumpwins(struct swm_region *r, union arg *args)
        }
 
        warnx("=== managed window list ws %02d ===", r->ws->idx);
-
        TAILQ_FOREACH(win, &r->ws->winlist, entry) {
                state = getstate(win->id);
-               if (!XGetWindowAttributes(display, win->id, &wa))
-                       warnx("window: 0x%lx, failed XGetWindowAttributes",
+               c = xcb_get_window_attributes(conn, win->id);
+               r = xcb_get_window_attributes_reply(conn, c, NULL);
+               if (r) {
+                       warnx("window: 0x%x, map_state: %d, state: %u, "
+                               "transient: 0x%x", win->id, wa.map_state,
+                               state, win->transient);
+                       free(r);
+               } else  
+                       warnx("window: 0x%x, failed xcb_get_window_attributes",
                            win->id);
-               warnx("window: 0x%lx, map_state: %d, state: %u, "
-                   "transient: 0x%lx", win->id, wa.map_state, state,
-                   win->transient);
        }
 
        warnx("===== unmanaged window list =====");
        TAILQ_FOREACH(win, &r->ws->unmanagedlist, entry) {
                state = getstate(win->id);
-               if (!XGetWindowAttributes(display, win->id, &wa))
+               c = xcb_get_window_attributes(conn, win->id);
+               r xcb_get_window_attributes_reply(conn, c, NULL);
+               if (r) {
+                       warnx("window: 0x%lx, map_state: %d, state: %u, "
+                               "transient: 0x%lx", win->id, wa.map_state,
+                               state, win->transient); 
+                       free(r);
+               } else
                        warnx("window: 0x%lx, failed XGetWindowAttributes",
                            win->id);
-               warnx("window: 0x%lx, map_state: %d, state: %u, "
-                   "transient: 0x%lx", win->id, wa.map_state, state,
-                   win->transient);
        }
 
        warnx("=================================");
@@ -7552,7 +7561,6 @@ main(int argc, char *argv[])
        int                     xfd, i, num_screens;
        fd_set                  rd;
        struct sigaction        sact;
-       xcb_generic_event_t     *evt;
        
        start_argv = argv;
        warnx("Welcome to spectrwm V%s Build: %s", SPECTRWM_VERSION, buildstr);
@@ -7674,7 +7682,7 @@ noconfig:
 
        xfd = xcb_get_file_descriptor(conn); 
        while (running) {
-               while ((evt = xcb_poll_for_event(conn)) == 0) {
+               while (XPending(display)) {
                        XNextEvent(display, &e);
                        if (running == 0)
                                goto done;