summaryrefslogtreecommitdiffstats
path: root/driver/screens.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver/screens.c')
-rw-r--r--driver/screens.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/driver/screens.c b/driver/screens.c
index f319c96..5aeb55d 100644
--- a/driver/screens.c
+++ b/driver/screens.c
@@ -1,5 +1,5 @@
/* screens.c --- dealing with RANDR, Xinerama, and VidMode Viewports.
- * xscreensaver, Copyright (c) 1991-2008 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1991-2020 Jamie Zawinski <jwz@jwz.org>
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -1089,6 +1089,22 @@ update_screen_layout (saver_info *si)
j++;
}
+ for (; j < count; j++)
+ {
+ saver_screen_info *ssi = &si->screens[j];
+ if (!ssi->screensaver_window)
+ continue;
+ fprintf (stderr, "%s: %d: screen now unused, disabling.\n",
+ blurb(), j);
+ /* Undo store_saver_id() so that xscreensaver-command doesn't attempt
+ to communicate with us through this window. It might make more
+ sense to destroy the window, but I'm not 100% sure that there are
+ no outstanding grabs on it that have yet been transferred.
+ */
+ XDeleteProperty (si->dpy, ssi->screensaver_window,
+ XA_SCREENSAVER_VERSION);
+ }
+
si->default_screen = &si->screens[0];
return True;
}