diff --git a/wl.c b/wl.c index 569c8da..2107be7 100644 --- a/wl.c +++ b/wl.c @@ -343,11 +343,12 @@ releasegrab(void) } /* - * The context is going: give the client its keys back and the pending - * text, as a lost focus does everywhere else. A client that only - * disabled its text input still holds the focus and takes the commit; - * when the focus itself moved, the compositor sent the text input its - * leave first and drops the commit whatever serial it carries. + * The context is going: give the client its keys back. The pending text + * goes nowhere either way -- the compositor drops a commit once the text + * input has its leave, and a client that disabled its own text input has + * stopped listening, so it throws a relayed commit away. XIM and IBus + * hand the text back here because their focus-out is a round trip the + * client still waits on; a deactivate is not. */ static void leave(void) @@ -357,7 +358,6 @@ leave(void) releasekeys(); if(engaged){ sendrequest(Keyrelease, 0, 0, &res); - answer(&res, ""); engaged = 0; takedraw(); }