Gamescope rewrites GAMESCOPE_FOCUSED_WINDOW (same window) after an IME
commit. The focus guard treated any PropertyNotify on the root focus
properties as a focus change, so every paced delivery stopped after its
first chunk. Re-read the property and fail only when it names a
different window; real X focus moves still fail via FocusOut, and every
check still re-validates both properties and X input focus.
Diagnosed from delivery-debug.log on Frame:
sent offset=0 bytes=24
focus invalid: GAMESCOPE_FOCUSED_WINDOW changed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>