Index: Slim/Buttons/ScreenSaver.pm =================================================================== --- Slim/Buttons/ScreenSaver.pm (revision 9648) +++ Slim/Buttons/ScreenSaver.pm (working copy) @@ -44,9 +44,9 @@ $client->update(); # pass along ir code to new mode if requested - if (defined $functarg && $functarg eq 'passback') { +# if (defined $functarg && $functarg eq 'passback') { Slim::Hardware::IR::resendButton($client); - } +# } } ); } @@ -77,10 +77,6 @@ my $timeout = $client->prefGet("screensavertimeout"); my $irtime = Slim::Hardware::IR::lastIRTime($client); - # if we are already in now playing, jump back screensaver is redundant and confusing - if ($saver eq 'screensaver' && $mode eq 'playlist') { - $saver = 'playlist'; - } # dim the screen if we're not playing... will restore brightness on next IR input. # only ned to do this once, but its hard to ensure all cases, so it might be repeated. @@ -110,11 +106,10 @@ # we only go into screensaver mode if we've timed out # and we're not off or blocked if ($saver eq 'playlist') { - if ($mode eq 'playlist') { - Slim::Buttons::Playlist::jump($client); - } else { - Slim::Buttons::Common::pushMode($client,'playlist'); + if ($mode ne 'playlist') { + Slim::Buttons::Common::setMode($client,'playlist'); } + Slim::Buttons::Common::pushMode($client,'screensaver'); } else { if (Slim::Buttons::Common::validMode($saver)) { Slim::Buttons::Common::pushMode($client, $saver); Index: Slim/Buttons/Playlist.pm =================================================================== --- Slim/Buttons/Playlist.pm (revision 9648) +++ Slim/Buttons/Playlist.pm (working copy) @@ -361,7 +361,7 @@ my ($parts, $line1, $line2); - my $nowPlaying = showingNowPlaying($client); + my $nowPlaying = Slim::Buttons::Common::mode($client) eq 'screensaver' || showingNowPlaying($client); if ($nowPlaying || (Slim::Player::Playlist::count($client) < 1)) {