From cff561c10b29b2c3e5eab100c5f35446b69c25fa Mon Sep 17 00:00:00 2001 From: David Hill Date: Fri, 6 Jul 2012 17:21:46 -0400 Subject: [PATCH] replace XSync calls with a home grown function --- spectrwm.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/spectrwm.c b/spectrwm.c index fe52b18..547e7b2 100644 --- a/spectrwm.c +++ b/spectrwm.c @@ -628,8 +628,23 @@ void spawn_select(struct swm_region *, union arg *, char *, int *); unsigned char *get_win_name(xcb_window_t); xcb_atom_t get_atom_from_string(const char *); void map_window_raised(xcb_window_t); +void do_sync(void); void +do_sync(void) +{ + xcb_get_input_focus_cookie_t c; + xcb_get_input_focus_reply_t *r; + + /* mimic XSync() */ + c = xcb_get_input_focus(conn); + xcb_flush(conn); + r = xcb_get_input_focus_reply(conn, c, NULL); + if (r) + free(r); +} + +void map_window_raised(xcb_window_t win) { uint32_t val = XCB_STACK_MODE_ABOVE; @@ -4386,14 +4401,14 @@ resize(struct ws_win *win, union arg *args) /* not free, don't sync more than 120 times / second */ if ((ev.xmotion.time - time) > (1000 / 120) ) { time = ev.xmotion.time; - XSync(display, False); + do_sync(); update_window(win); } break; } } while (ev.type != ButtonRelease); if (time) { - XSync(display, False); + do_sync(); update_window(win); } store_float_geom(win,r); @@ -4512,14 +4527,14 @@ move(struct ws_win *win, union arg *args) /* not free, don't sync more than 120 times / second */ if ((ev.xmotion.time - time) > (1000 / 120) ) { time = ev.xmotion.time; - XSync(display, False); + do_sync(); update_window(win); } break; } } while (ev.type != ButtonRelease); if (time) { - XSync(display, False); + do_sync(); update_window(win); } store_float_geom(win, r); @@ -7186,12 +7201,12 @@ active_wm(void) /* this causes an error if some other window manager is running */ XSelectInput(display, DefaultRootWindow(display), SubstructureRedirectMask); - XSync(display, False); + do_sync(); if (other_wm) return (1); XSetErrorHandler(xerror); - XSync(display, False); + do_sync(); return (0); } -- 1.7.10.4