As far as I understand, xdg-screensaver should resume the screensaver if the window used to suspend it has disappeared - but this doesn't happen. Even worse, if the window has disappeared, it's impossible to enable the screensaver using "xdg-screensaver resume".
I found these lines in the xdg-screensaver code:
# Start tracking $window_id
$XPROP -id $window_id -spy > /dev/null &
# Wait for xprop to edit, it means that the window disappeared
(I assume it's "exit", not "edit".)
But 'xprop -spy' doesn't ever exit - and nowhere in the manual does it say that it should. I even looked at the xprop source code; it has an infinite loop at the end, so it looks like it was never intended to exit.
xprop has been changed to exit as expected by xdg-screensaver. I think this bug can be resolved by documenting the version-dependency on xprop.