Samuel Thibault
364d649815
dix: do not send focus event when grab actually does not change
...
c67f2eac56 ("dix: always send focus event on grab change") made dix
always sent events when it's a NotifyGrab or NotifyUngrab, even if
from == to, because 'from' can just come from a previous XSetInputFocus
call.
However, when an application calls XGrabKeyboard several times on
the same window, we are now sending spurious FocusOut+FocusIn with
NotifyGrab, even if the grab does not actually change. This makes screen
readers for blind people spuriously emit activity events which disturb
screen reading workflow when e.g. switching between menus.
This commit avoids calling DoFocusEvents in that precise case, i.e. when
oldWin is a previous grab and the new grab is the same window.
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
2018-11-19 13:56:51 -05:00
..
.gitignore
atom.c
atom: make FreeAtom static
2015-07-08 16:41:29 -04:00
buildatoms
BuiltInAtoms
colormap.c
configurable maximum number of clients
2015-08-24 00:00:18 -07:00
cursor.c
Revert "dix: Work around non-premultiplied ARGB cursor data harder"
2018-11-06 11:33:19 +01:00
devices.c
devices: break after finding and removing device from lists
2018-09-12 12:26:48 +10:00
dispatch.c
Unvalidated extra length in ProcEstablishConnection (CVE-2017-12176)
2017-10-10 23:33:44 +02:00
dispatch.h
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
dixfonts.c
dix: Fix a warning about GetTimeInMillis return value in XFont2.
2018-05-08 11:59:28 -04:00
dixutils.c
Remove fd_set from Block/Wakeup handler API
2016-07-18 15:27:51 -04:00
enterleave.c
dix: always send focus event on grab change
2018-04-10 14:50:08 -04:00
enterleave.h
dix: Unexport various implementation details
2015-07-08 16:40:57 -04:00
eventconvert.c
Use ARRAY_SIZE all over the tree
2017-10-30 13:45:20 -04:00
events.c
dix: do not send focus event when grab actually does not change
2018-11-19 13:56:51 -05:00
extension.c
dix: Allow an extension to disable itself
2018-04-24 14:36:04 -04:00
gc.c
Use ARRAY_SIZE all over the tree
2017-10-30 13:45:20 -04:00
getevents.c
dix: Hush an almost certainly bogus warning
2018-04-05 14:18:52 -04:00
globals.c
dpms: Consolidate a bunch of stuff into Xext/dpms.c
2017-03-27 15:59:47 -04:00
glyphcurs.c
Let calloc handle multiplication
2015-04-21 16:57:07 -07:00
grabs.c
Convert dix/* to new *allocarray functions
2015-04-21 16:57:08 -07:00
initatoms.c
inpututils.c
dix: Remove LegalModifier()
2018-09-28 16:25:17 -04:00
main.c
dix: Remove MaxClients
2018-09-12 19:31:07 +00:00
Makefile.am
dix: Remove ffs.c
2017-11-06 17:22:46 -05:00
meson.build
meson: Fix installing protocol.txt
2018-03-27 10:13:18 -04:00
pixmap.c
Make PixmapDirtyUpdateRec::src a DrawablePtr
2017-08-15 17:01:39 +09:00
privates.c
Use ARRAY_SIZE all over the tree
2017-10-30 13:45:20 -04:00
property.c
dix: Add a callback chain for window property state change
2017-02-23 13:30:11 -05:00
protocol.txt
protocol.txt: add GLX req. 35 - SetClientInfo2ARB
2018-02-27 13:08:35 -05:00
ptrveloc.c
Remove SIGIO support for input [v5]
2016-05-26 16:07:54 -07:00
region.c
Convert dix/* to new *allocarray functions
2015-04-21 16:57:08 -07:00
registry.c
Build required portions of registry.c automatically [v2]
2014-09-18 15:29:29 -07:00
resource.c
dix: Bump MAXHASHSIZE for the resource db [v2]
2016-10-28 09:28:32 -07:00
selection.c
dix: Push UpdateCurrentTimeIf down out of the main loop
2016-05-04 10:58:01 -04:00
stubmain.c
swaprep.c
dispatch: Mark swapped dispatch as _X_COLD
2017-03-01 10:16:20 -05:00
swapreq.c
dix: Disallow GenericEvent in SendEvent request.
2017-06-19 11:58:50 +10:00
tables.c
Drop trailing whitespaces
2014-11-12 10:25:00 +10:00
touch.c
dix: Reallocate touchpoint buffer at input event time [v2]
2016-05-26 16:07:54 -07:00
window.c
dix/window: Use ConfigureWindow instead of MoveWindow
2018-11-13 11:02:41 -05:00
Xserver-dtrace.h.in
Xserver.d
dix: unbreak --with-dtrace (default) on FreeBSD 11.1+
2017-07-31 13:32:35 -04:00