I have two external monitors connected to my laptop through a docking station. If I disconnect my secondary displays (by undocking my laptop) I notice that the unlock dialog, which is only shown on one of the two external displays, doesn't automatically move to the only remaining - the internal laptop - display. Instead, my session is revealed. I cannot interact with it, because there seems to be a transparent toplevel window or in any case my keyboard and mouse are grabbed. However, I have no way of unlocking my session. When reconnecting my previous external setup, the unlock dialog shows up as before on one of the external displays and I can unlock normally.
It looks like we should be able to plug into the GdkScreen "monitors-changed" signal to detect connects/disconnects and redraw everything. I'll look into this sometime this week.
Sean Davis referenced this bugreport in commit 52b2f4a25e8e35223d47c84c276a5e27d447e38d Handle monitor change events more reliably (bug #14796) https://git.xfce.org/apps/xfce4-screensaver/commit?id=52b2f4a25e8e35223d47c84c276a5e27d447e38d
@Simon, can you please test the above commit? I was able to reproduce your bug, and with the above patch, it seems to be resolved.
Marking this bug resolved.