diff options
author | Simon Rettberg | 2019-07-30 15:52:11 +0200 |
---|---|---|
committer | Simon Rettberg | 2019-07-30 15:52:11 +0200 |
commit | 70fe2325b1be6a7ad4c30b65fd3c0d1a6f620ae1 (patch) | |
tree | 19471e8219f982168cf80afcac826e194c8cd146 /driver/windows.c | |
parent | Merge branch 'master' into openslx (diff) | |
download | xscreensaver-70fe2325b1be6a7ad4c30b65fd3c0d1a6f620ae1.tar.gz xscreensaver-70fe2325b1be6a7ad4c30b65fd3c0d1a6f620ae1.tar.xz xscreensaver-70fe2325b1be6a7ad4c30b65fd3c0d1a6f620ae1.zip |
Flush X events before locking if we have an external ungrab command
The external ungrab command might have generated some synthetic
keyboard or mouse events, which would in turn immediately
disable the screen saver again if it gets activated (but not locked).
This is supposed to help mitigate that case.
Diffstat (limited to 'driver/windows.c')
-rw-r--r-- | driver/windows.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/driver/windows.c b/driver/windows.c index c54f15e..ceba8c8 100644 --- a/driver/windows.c +++ b/driver/windows.c @@ -337,6 +337,10 @@ grab_keyboard_and_mouse (saver_info *si, Window window, Cursor cursor, { snprintf (cmd, sizeof(cmd), "%s %s", euc, "post"); exec_and_wait (si, cmd); + if (ret) { + /* The external command might have generated some x/input events */ + flush_events (si); + } } return ret; } |