diff --git a/capplets/screensaver/ChangeLog b/capplets/screensaver/ChangeLog index 62d55d42e..1645500ad 100644 --- a/capplets/screensaver/ChangeLog +++ b/capplets/screensaver/ChangeLog @@ -1,3 +1,8 @@ +2001-08-10 Richard Hestilow + + * capplet/prefs-widget.c (random_timeout_cb): Fix for + SM_SELECT_FROM_LIST mode. + 2001-08-10 Richard Hestilow * capplets/screensavers/magic.pl.in: Add perms to mkdir. diff --git a/capplets/screensaver/prefs-widget.c b/capplets/screensaver/prefs-widget.c index 8d611aa45..b0e0ec760 100644 --- a/capplets/screensaver/prefs-widget.c +++ b/capplets/screensaver/prefs-widget.c @@ -754,7 +754,8 @@ random_timeout_cb (PrefsWidget *prefs_widget) { GList *l, *old; gboolean skippedwc = FALSE, skippedvw = FALSE; - + gboolean beenhere = FALSE; + g_return_val_if_fail (prefs_widget != NULL, FALSE); l = prefs_widget->priv->random_current; @@ -810,21 +811,21 @@ random_timeout_cb (PrefsWidget *prefs_widget) l = prefs_widget->screensavers; } - if (l) - old = l->next; - else - old = NULL; + old = l; while (l) { /* Are we back to where we started? */ if (((Screensaver*) l->data)->enabled || l == prefs_widget->priv->random_current - || (old && old == l)) + || (beenhere && old && old == l)) break; l = l->next; + if (!beenhere) + beenhere = TRUE; + if (!l) l = prefs_widget->screensavers; }