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
|
# ifdef ENABLE_VISUALIZER
|
||||||
// visualizer sets timmeout to 40ms, but since only it needs such small
|
// visualizer sets timmeout to 40ms, but since only it needs such small
|
||||||
// value, we should restore defalt one after switching to another screen.
|
// 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);
|
wFooter->SetTimeout(ncmpcpp_window_timeout);
|
||||||
# endif // ENABLE_VISUALIZER
|
# endif // ENABLE_VISUALIZER
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ using Global::myInactiveScreen;
|
|||||||
|
|
||||||
void ApplyToVisibleWindows(void (BasicScreen::*f)())
|
void ApplyToVisibleWindows(void (BasicScreen::*f)())
|
||||||
{
|
{
|
||||||
if (myLockedScreen)
|
if (myLockedScreen && myScreen->isMergable())
|
||||||
{
|
{
|
||||||
if (myScreen == myLockedScreen)
|
if (myScreen == myLockedScreen)
|
||||||
{
|
{
|
||||||
@@ -51,7 +51,7 @@ bool isVisible(BasicScreen *screen)
|
|||||||
{
|
{
|
||||||
assert(screen != 0);
|
assert(screen != 0);
|
||||||
if (myLockedScreen && myScreen->isMergable())
|
if (myLockedScreen && myScreen->isMergable())
|
||||||
return screen == myScreen || screen == myInactiveScreen || screen == myLockedScreen;
|
return screen == myInactiveScreen || screen == myLockedScreen;
|
||||||
else
|
else
|
||||||
return screen == myScreen;
|
return screen == myScreen;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -158,17 +158,7 @@ void TraceMpdStatus()
|
|||||||
Global::UpdateStatusImmediately = 0;
|
Global::UpdateStatusImmediately = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (myLockedScreen)
|
ApplyToVisibleWindows(&BasicScreen::Update);
|
||||||
{
|
|
||||||
if (myScreen == myLockedScreen)
|
|
||||||
{
|
|
||||||
if (myInactiveScreen)
|
|
||||||
myInactiveScreen->Update();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
myLockedScreen->Update();
|
|
||||||
}
|
|
||||||
myScreen->Update();
|
|
||||||
|
|
||||||
if (isVisible(myPlaylist) && myPlaylist->ActiveWindow() == myPlaylist->Items
|
if (isVisible(myPlaylist) && myPlaylist->ActiveWindow() == myPlaylist->Items
|
||||||
&& Timer.tv_sec == myPlaylist->Timer()+Config.playlist_disable_highlight_delay
|
&& Timer.tv_sec == myPlaylist->Timer()+Config.playlist_disable_highlight_delay
|
||||||
|
|||||||
Reference in New Issue
Block a user