--- rxvt-unicode/src/rxvttoolkit.C 2008/01/23 09:23:39 1.89 +++ rxvt-unicode/src/rxvttoolkit.C 2008/01/26 13:13:20 1.98 @@ -552,12 +552,13 @@ #ifdef USE_XIM if (!XFilterEvent (&xev, None)) +#endif { if (xev.type == PropertyNotify && xev.xany.window == root && xev.xproperty.atom == xa[XA_XIM_SERVERS]) im_change_check (); -#endif + if (xev.type == MappingNotify) XRefreshKeyboardMapping (&xev.xmapping); @@ -568,16 +569,16 @@ else if (xw[i]->window == xev.xany.window) xw[i]->call (xev); } -#ifdef USE_XIM } -#endif } } void rxvt_display::flush_cb (ev::prepare &w, int revents) { + while (XEventsQueued (dpy, QueuedAfterFlush)) + x_cb (x_ev, EV_READ); + w.stop (); - XFlush (dpy); } void rxvt_display::reg (xevent_watcher *w) @@ -675,7 +676,7 @@ bool rxvt_color::alloc (rxvt_screen *screen, const rgba &color) { - //TODO: only supports 24 bit truecolour + //TODO: only supports 24 bit int alpha = color.a >= 0xff00 ? 0xffff : color.a; #if XFT