Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • xserver xserver
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 946
    • Issues 946
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 121
    • Merge requests 121
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • xorgxorg
  • xserverxserver
  • Merge requests
  • !422

dix: do not send focus event when grab actually does not change

  • Review changes

  • Download
  • Patches
  • Plain diff
Merged Matthieu Herrb requested to merge mherrb/xserver:server-1.20-branch into server-1.20-branch Apr 14, 2020
  • Overview 2
  • Commits 1
  • Pipelines 2
  • Changes 1

c67f2eac ("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

Edited Apr 15, 2020 by Matthieu Herrb
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: server-1.20-branch