diff options
Diffstat (limited to 'driver/screens.c')
-rw-r--r-- | driver/screens.c | 18 |
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; } |