Fix problems with input focus after cancelling a logout. To replicate: make sure that a terminal window (for example) has the input focus then place the pointer over the backdrop, invoke logout, cancel logout (via the keyboard). Note that the same window (according to the frame and, possibly, translucency) appears to have the input focus. Now (without moving the pointer) try typing something. Move the pointer into the window without crossing other windows (NOTE: requires focus-follows-mouse), type something (it appears), move the pointer back out, type something (it doesn't appear). You need to click in the window or give a different window the input focus for things to return to normal. Signed-off-by: Darren Salt Index: src/events.c =================================================================== --- src/events.c (revision 22552) +++ src/events.c (working copy) @@ -1581,6 +1581,10 @@ "NotifyNormal" : (ev->mode == NotifyWhileGrabbed) ? "NotifyWhileGrabbed" : + (ev->mode == NotifyGrab) ? + "NotifyGrab" : + (ev->mode == NotifyUngrab) ? + "NotifyUngrab" : "(unknown)"); TRACE ("handleFocusIn (0x%lx) detail = %s", ev->window, @@ -1606,7 +1610,7 @@ last_raised = NULL; if (screen_info && (ev->window == screen_info->xroot) && (ev->mode == NotifyNormal) && - (ev->detail == NotifyDetailNone)) + (ev->detail == NotifyDetailNone || ev->detail == NotifyInferior)) { /* Handle focus transition to root (means that an unknown window has vanished and the focus is returned to the root