X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=spectrwm.c;h=28ad85fa9894c723cc9da5d04237097cf12fbb85;hb=6c2931776f4575b126e4f587969759de0b2be170;hp=3dbfdaa033bb3caa158ad55546aebfa1eba5ee5e;hpb=28f220a7dfbfd005c7e7515beaa48d5d9d4a7cf7;p=spectrwm.git diff --git a/spectrwm.c b/spectrwm.c index 3dbfdaa..28ad85f 100644 --- a/spectrwm.c +++ b/spectrwm.c @@ -720,7 +720,6 @@ map_window_raised(xcb_window_t win) XCB_CONFIG_WINDOW_STACK_MODE, &val); xcb_map_window(conn, win); - xcb_flush(conn); } xcb_atom_t @@ -843,33 +842,33 @@ teardown_ewmh(void) void ewmh_autoquirk(struct ws_win *win) { - int i; - unsigned long n; - xcb_atom_t type; + uint32_t i, n; + xcb_atom_t *type; xcb_get_property_cookie_t c; xcb_get_property_reply_t *r; c = xcb_get_property(conn, False, win->id, - ewmh[_NET_WM_WINDOW_TYPE].atom, XCB_ATOM_ATOM, 0, (~0L)); + ewmh[_NET_WM_WINDOW_TYPE].atom, XCB_ATOM_ATOM, 0, UINT32_MAX); r = xcb_get_property_reply(conn, c, NULL); if (!r) return; - n = xcb_get_property_value_length(r); + n = xcb_get_property_value_length(r); + type = xcb_get_property_value(r); + for (i = 0; i < n; i++) { - type = *((xcb_atom_t *)xcb_get_property_value(r)); - if (type == ewmh[_NET_WM_WINDOW_TYPE_NORMAL].atom) + if (type[i] == ewmh[_NET_WM_WINDOW_TYPE_NORMAL].atom) break; - if (type == ewmh[_NET_WM_WINDOW_TYPE_DOCK].atom || - type == ewmh[_NET_WM_WINDOW_TYPE_TOOLBAR].atom || - type == ewmh[_NET_WM_WINDOW_TYPE_UTILITY].atom) { + if (type[i] == ewmh[_NET_WM_WINDOW_TYPE_DOCK].atom || + type[i] == ewmh[_NET_WM_WINDOW_TYPE_TOOLBAR].atom || + type[i] == ewmh[_NET_WM_WINDOW_TYPE_UTILITY].atom) { win->floating = 1; win->quirks = SWM_Q_FLOAT | SWM_Q_ANYWHERE; break; } - if (type == ewmh[_NET_WM_WINDOW_TYPE_SPLASH].atom || - type == ewmh[_NET_WM_WINDOW_TYPE_DIALOG].atom) { + if (type[i] == ewmh[_NET_WM_WINDOW_TYPE_SPLASH].atom || + type[i] == ewmh[_NET_WM_WINDOW_TYPE_DIALOG].atom) { win->floating = 1; win->quirks = SWM_Q_FLOAT; break; @@ -1033,7 +1032,7 @@ ewmh_get_win_state(struct ws_win *win) win->ewmh_flags |= SWM_F_MANUAL; c = xcb_get_property(conn, False, win->id, ewmh[_NET_WM_STATE].atom, - XCB_ATOM_ATOM, 0, (~0L)); + XCB_ATOM_ATOM, 0, UINT32_MAX); r = xcb_get_property_reply(conn, c, NULL); if (!r) return; @@ -1777,6 +1776,8 @@ bar_toggle(struct swm_region *r, union arg *args) stack(); /* must be after stack */ bar_update(); + + xcb_flush(conn); } void @@ -1966,6 +1967,8 @@ version(struct swm_region *r, union arg *args) else strlcpy(bar_vertext, "", sizeof bar_vertext); bar_update(); + + xcb_flush(conn); } void @@ -2570,6 +2573,8 @@ switchws(struct swm_region *r, union arg *args) if (unmap_old) TAILQ_FOREACH(win, &old_ws->winlist, entry) unmap_window(win); + + xcb_flush(conn); } void @@ -2774,6 +2779,8 @@ swapwin(struct swm_region *r, union arg *args) sort_windows(wl); stack(); + + xcb_flush(conn); } void @@ -2962,6 +2969,8 @@ focus(struct swm_region *r, union arg *args) } focus_magic(winfocus); + + xcb_flush(conn); } void @@ -3591,6 +3600,8 @@ send_to_ws(struct swm_region *r, union arg *args) stack(); bar_update(); + + xcb_flush(conn); } void @@ -3613,6 +3624,8 @@ raise_toggle(struct swm_region *r, union arg *args) /* bring floaters back to top */ if (r->ws->always_raise == 0) stack(); + + xcb_flush(conn); } void @@ -3629,6 +3642,8 @@ iconify(struct swm_region *r, union arg *args) r->ws->focus = NULL; a.id = SWM_ARG_ID_FOCUSCUR; focus(r, &a); + + xcb_flush(conn); } char * @@ -3701,6 +3716,7 @@ uniconify(struct swm_region *r, union arg *args) } fclose(lfile); + xcb_flush(conn); } void @@ -3843,6 +3859,8 @@ search_win(struct swm_region *r, union arg *args) } fclose(lfile); + + xcb_flush(conn); } void @@ -4035,6 +4053,8 @@ wkill(struct swm_region *r, union arg *args) else if (r->ws->focus->can_delete) client_msg(r->ws->focus, adelete); + + xcb_flush(conn); } @@ -4095,6 +4115,8 @@ floating_toggle(struct swm_region *r, union arg *args) a.id = SWM_ARG_ID_FOCUSCUR; focus(win->ws->r, &a); } + + xcb_flush(conn); } void @@ -7061,6 +7083,7 @@ unmapnotify(xcb_unmap_notify_event_t *e) /* resend unmap because we ated it */ xcb_unmap_window(conn, e->window); + xcb_flush(conn); } }