--- rxvt-unicode/src/rxvttoolkit.C 2004/12/11 17:18:29 1.6 +++ rxvt-unicode/src/rxvttoolkit.C 2004/12/29 19:59:46 1.10 @@ -272,18 +272,15 @@ } while (XEventsQueued (display, QueuedAlready)); - flush (); + XFlush (display); } void rxvt_display::flush () { - for (;;) - { - if (!XPending (display)) - break; + if (XEventsQueued (display, QueuedAlready)) + x_cb (x_ev, EVENT_READ); - x_cb (x_ev, 0); - } + XFlush (display); } void rxvt_display::reg (xevent_watcher *w) @@ -340,7 +337,9 @@ void rxvt_display::put_xim (rxvt_xim *xim) { +#if XLIB_IS_RACEFREE xims.put (xim); +#endif } #endif @@ -388,12 +387,17 @@ bool rxvt_color::set (rxvt_display *display, const char *name) { +#if XFT + return XftColorAllocName (display->display, display->visual, display->cmap, + name, &c); +#else XColor xc; if (XParseColor (display->display, display->cmap, name, &xc)) return set (display, xc.red, xc.green, xc.blue); return false; +#endif } bool