fixes for overwriting not mergable screen displayed on top of merged ones
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user