• Samuel Thibault's avatar
    gdk: do not deactivate surface on keyboard grabs · 01455399
    Samuel Thibault authored
    When pressing e.g. a window manager shortcut, which acquires keyboard grab,
    Xorg would send FocusOut NotifyGrab then FocusIn NotifyUngrab.  Currently
    gdk would then deactivate the current surface, which makes accessibility
    screen readers think that we have switched to a non-accessible application
    and came back again, and thus reannounce the application frame etc. which we
    don't want when e.g. just raising volume.
    
    And actually, receiving FocusOut NotifyGrab does not mean losing the
    X focus, it only means an application aqcuired a grab, i.e. it is
    temporarily stealing keyboard events. On Wayland, this isn't even
    notified actually.
    
    This commit makes gdk only deactivate surfaces when there was an actual
    focus switch to another window, as determined by has_focus_window (instead
    of just has_focus), which happens either normally through FocusOut with
    NotifyNormal, or during grabs through FocusOut with NotifyWhileGrabbed.
    
    Fixes #85
    01455399
Name
Last commit
Last update
..
broadway Loading commit data...
quartz Loading commit data...
resources/glsl Loading commit data...
wayland Loading commit data...
win32 Loading commit data...
x11 Loading commit data...
COPYING Loading commit data...
fallback-c89.c Loading commit data...
gdk-autocleanup.h Loading commit data...
gdk-private.h Loading commit data...
gdk.c Loading commit data...
gdk.h Loading commit data...
gdkapplaunchcontext.c Loading commit data...
gdkapplaunchcontext.h Loading commit data...
gdkapplaunchcontextprivate.h Loading commit data...
gdkcairo.c Loading commit data...
gdkcairo.h Loading commit data...
gdkcairocontext.c Loading commit data...
gdkcairocontext.h Loading commit data...
gdkcairocontextprivate.h Loading commit data...
gdkclipboard.c Loading commit data...
gdkclipboard.h Loading commit data...
gdkclipboardprivate.h Loading commit data...
gdkconfig.h.meson Loading commit data...
gdkconfig.h.win32 Loading commit data...
gdkconfig.h.win32_vulkan Loading commit data...
gdkcontentdeserializer.c Loading commit data...
gdkcontentdeserializer.h Loading commit data...
gdkcontentformats.c Loading commit data...
gdkcontentformats.h Loading commit data...
gdkcontentformatsprivate.h Loading commit data...
gdkcontentprovider.c Loading commit data...
gdkcontentprovider.h Loading commit data...
gdkcontentproviderimpl.c Loading commit data...
gdkcontentproviderimpl.h Loading commit data...
gdkcontentproviderprivate.h Loading commit data...
gdkcontentserializer.c Loading commit data...
gdkcontentserializer.h Loading commit data...
gdkcursor.c Loading commit data...
gdkcursor.h Loading commit data...
gdkcursorprivate.h Loading commit data...
gdkdevice.c Loading commit data...
gdkdevice.h Loading commit data...
gdkdevicepad.c Loading commit data...
gdkdevicepad.h Loading commit data...
gdkdevicepadprivate.h Loading commit data...
gdkdeviceprivate.h Loading commit data...
gdkdevicetool.c Loading commit data...
gdkdevicetool.h Loading commit data...
gdkdevicetoolprivate.h Loading commit data...
gdkdisplay.c Loading commit data...
gdkdisplay.h Loading commit data...
gdkdisplaymanager.c Loading commit data...
gdkdisplaymanager.h Loading commit data...
gdkdisplaymanagerprivate.h Loading commit data...
gdkdisplayprivate.h Loading commit data...
gdkdnd.c Loading commit data...
gdkdnd.h Loading commit data...
gdkdndprivate.h Loading commit data...
gdkdrawcontext.c Loading commit data...
gdkdrawcontext.h Loading commit data...
gdkdrawcontextprivate.h Loading commit data...
gdkenumtypes.c.template Loading commit data...
gdkenumtypes.h.template Loading commit data...
gdkevents.c Loading commit data...
gdkevents.h Loading commit data...
gdkeventsprivate.h Loading commit data...
gdkframeclock.c Loading commit data...
gdkframeclock.h Loading commit data...
gdkframeclockidle.c Loading commit data...
gdkframeclockidleprivate.h Loading commit data...
gdkframeclockprivate.h Loading commit data...
gdkframetimings.c Loading commit data...
gdkframetimings.h Loading commit data...
gdkgl.c Loading commit data...
gdkglcontext.c Loading commit data...
gdkglcontext.h Loading commit data...
gdkglcontextprivate.h Loading commit data...
gdkglobals.c Loading commit data...
gdkgltexture.c Loading commit data...
gdkgltexture.h Loading commit data...
gdkgltextureprivate.h Loading commit data...
gdkinternals.h Loading commit data...
gdkintl.h Loading commit data...
gdkkeynames.c Loading commit data...
gdkkeys.c Loading commit data...
gdkkeys.h Loading commit data...
gdkkeysprivate.h Loading commit data...
gdkkeysyms-update.pl Loading commit data...
gdkkeysyms.h Loading commit data...
gdkkeyuni.c Loading commit data...
gdkmarshalers.list Loading commit data...
gdkmemorytexture.c Loading commit data...
gdkmemorytexture.h Loading commit data...
gdkmemorytextureprivate.h Loading commit data...
gdkmonitor.c Loading commit data...
gdkmonitor.h Loading commit data...
gdkmonitorprivate.h Loading commit data...
gdkpaintable.c Loading commit data...
gdkpaintable.h Loading commit data...
gdkpango.c Loading commit data...
gdkpango.h Loading commit data...
gdkpipeiostream.c Loading commit data...
gdkpipeiostreamprivate.h Loading commit data...
gdkpixbuf-drawable.c Loading commit data...
gdkpixbuf.h Loading commit data...
gdkproperty.c Loading commit data...
gdkproperty.h Loading commit data...
gdkrectangle.c Loading commit data...
gdkrectangle.h Loading commit data...
gdkrgba.c Loading commit data...
gdkrgba.h Loading commit data...
gdkseat.c Loading commit data...
gdkseat.h Loading commit data...
gdkseatdefault.c Loading commit data...
gdkseatdefaultprivate.h Loading commit data...
gdkseatprivate.h Loading commit data...
gdkselection.c Loading commit data...
gdksnapshot.c Loading commit data...
gdksnapshot.h Loading commit data...
gdksnapshotprivate.h Loading commit data...
gdksurface.c Loading commit data...
gdksurface.h Loading commit data...
gdksurfaceimpl.c Loading commit data...
gdksurfaceimpl.h Loading commit data...
gdktexture.c Loading commit data...
gdktexture.h Loading commit data...
gdktextureprivate.h Loading commit data...
gdktypes.h Loading commit data...
gdkversionmacros.h.in Loading commit data...
gdkvulkancontext.c Loading commit data...
gdkvulkancontext.h Loading commit data...
gdkvulkancontextprivate.h Loading commit data...
gen-gdk-gresources-xml.py Loading commit data...
gen-keyname-table.pl Loading commit data...
keyname-table.h Loading commit data...
keynames-translate.txt Loading commit data...
keynames.txt Loading commit data...
meson.build Loading commit data...