fixes for overwriting not mergable screen displayed on top of merged ones

master
Andrzej Rybczak 15 years ago
parent df62a28c72
commit 4a8cfcb187
  1. 4
      src/ncmpcpp.cpp
  2. 4
      src/screen.cpp
  3. 12
      src/status.cpp

@ -2388,7 +2388,9 @@ int main(int argc, char **argv)
# ifdef ENABLE_VISUALIZER
// visualizer sets timmeout to 40ms, but since only it needs such small
// value, we should restore defalt one after switching to another screen.
if (wFooter->GetTimeout() < ncmpcpp_window_timeout && !isVisible(myVisualizer))
if (wFooter->GetTimeout() < ncmpcpp_window_timeout
&& !(myScreen == myVisualizer || myLockedScreen == myVisualizer || myInactiveScreen == myVisualizer)
)
wFooter->SetTimeout(ncmpcpp_window_timeout);
# endif // ENABLE_VISUALIZER
}

@ -29,7 +29,7 @@ using Global::myInactiveScreen;
void ApplyToVisibleWindows(void (BasicScreen::*f)())
{
if (myLockedScreen)
if (myLockedScreen && myScreen->isMergable())
{
if (myScreen == myLockedScreen)
{
@ -51,7 +51,7 @@ bool isVisible(BasicScreen *screen)
{
assert(screen != 0);
if (myLockedScreen && myScreen->isMergable())
return screen == myScreen || screen == myInactiveScreen || screen == myLockedScreen;
return screen == myInactiveScreen || screen == myLockedScreen;
else
return screen == myScreen;
}

@ -158,17 +158,7 @@ void TraceMpdStatus()
Global::UpdateStatusImmediately = 0;
}
if (myLockedScreen)
{
if (myScreen == myLockedScreen)
{
if (myInactiveScreen)
myInactiveScreen->Update();
}
else
myLockedScreen->Update();
}
myScreen->Update();
ApplyToVisibleWindows(&BasicScreen::Update);
if (isVisible(myPlaylist) && myPlaylist->ActiveWindow() == myPlaylist->Items
&& Timer.tv_sec == myPlaylist->Timer()+Config.playlist_disable_highlight_delay

Loading…
Cancel
Save