xserver: Branch 'master'

Adam Jackson ajax at kemper.freedesktop.org
Tue Apr 10 18:50:32 UTC 2018


 dix/enterleave.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit c67f2eac56518163981af59f5accb7c79bc00f6a
Author: Samuel Thibault <samuel.thibault at ens-lyon.org>
Date:   Mon Apr 9 14:35:30 2018 +0200

    dix: always send focus event on grab change
    
    Focus events are useless when 'from' and 'to' are the same.  But when
    this is the result of a (Un)GrabKeyboard request, we should always send
    them, including when the window manager had previously used XSetInputFocus
    to specify the focus on a window which happens to be now taking a grab.
    
    This is notably needed for window manager using XI to always get keyboard
    events even during grabs, so they can determine exactly when grabbing is
    active.
    
    Signed-off-by: Samuel Thibault <samuel.thibault at ens-lyon.org>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/dix/enterleave.c b/dix/enterleave.c
index 1b341f2de..a2f625bc9 100644
--- a/dix/enterleave.c
+++ b/dix/enterleave.c
@@ -1562,7 +1562,7 @@ DoFocusEvents(DeviceIntPtr pDev, WindowPtr from, WindowPtr to, int mode)
     if (!IsKeyboardDevice(pDev))
         return;
 
-    if (from == to)
+    if (from == to && mode != NotifyGrab && mode != NotifyUngrab)
         return;
 
     CoreFocusEvents(pDev, from, to, mode);


More information about the xorg-commit mailing list