@ -196,20 +196,22 @@ function UIManager:close(widget, refreshtype, refreshregion, refreshdither)
table.remove(self._window_stack,i)
dirty=true
else
-- If anything else on the stack not already hidden by (i.e., below) a fullscreen widget was dithered, honor the hint
ifw.ditheredandnotis_coveredthen
refreshdither=true
logger.dbg("Lower widget",w.nameorw.idortostring(w),"was dithered, honoring the dithering hint")
end
ifnotis_coveredthen
-- If anything else on the stack not already hidden by (i.e., below) a fullscreen widget was dithered, honor the hint
ifw.ditheredthen
refreshdither=true
logger.dbg("Lower widget",w.nameorw.idortostring(w),"was dithered, honoring the dithering hint")
end
-- Remember the uppermost widget that covers the full screen, so we don't bother calling setDirty on hidden (i.e., lower) widgets in the following dirty loop.
-- _repaint already does that later on to skip the actual paintTo calls, so this ensures we limit the refresh queue to stuff that will actually get painted.
ifnotis_coveredandw.covers_fullscreenthen
is_covered=true
start_idx=i
logger.dbg("Lower widget",w.nameorw.idortostring(w),"covers the full screen")
-- Remember the uppermost widget that covers the full screen, so we don't bother calling setDirty on hidden (i.e., lower) widgets in the following dirty loop.
-- _repaint already does that later on to skip the actual paintTo calls, so this ensures we limit the refresh queue to stuff that will actually get painted.
ifw.covers_fullscreenthen
is_covered=true
start_idx=i
logger.dbg("Lower widget",w.nameorw.idortostring(w),"covers the full screen")