Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use last event time when calling XSetInputFocus #101

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

rbernon
Copy link

@rbernon rbernon commented Mar 22, 2023

This fixes a race condition when WM_TAKE_FOCUS message is sent to
client windows, with the last event time as time parameter. The
client might react to the WM_TAKE_FOCUS message with a XSetInputFocus
call, and is expected to pass the message time as time parameter.

As fvwm concurrently calls XSetInputFocus with CurrentTime, it causes
a race condition and sometimes the X server gives focus to fvwm
window, stealing the focus from the client window.

  This fixes a race condition when WM_TAKE_FOCUS message is sent to
  client windows, with the last event time as time parameter. The
  client might react to the WM_TAKE_FOCUS message with a XSetInputFocus
  call, and is expected to pass the message time as time parameter.

  As fvwm concurrently calls XSetInputFocus with CurrentTime, it causes
  a race condition and sometimes the X server gives focus to fvwm
  window, stealing the focus from the client window.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant