Actually, I think you're right: DEACTVIATE was not forcing the monitor to be powered on.
I'd like to include your code with the next xscreensaver release if that's ok with you -- is the latest version on GitHub what you'd like to go with? Thanks! --- a/driver/xscreensaver.c +++ b/driver/xscreensaver.c @@ -1831,6 +1831,11 @@ handle_clientmessage (saver_info *si, XEvent *event, Bool until_idle_p) } else if (type == XA_DEACTIVATE) { + + /* Regardless of whether the screen saver is active, a DEACTIVATE + message should cause the monitor to become powered on. */ + monitor_power_on (si, True); + # if 0 /* When -deactivate is received while locked, pop up the dialog box instead of just ignoring it. Some people depend on this behavior -- Jamie Zawinski https://www.jwz.org/ https://www.dnalounge.com/