return f'{self.idx}) {self._title}'
 
     def draw(self) -> bool:
-        self._term.clear()
         if not super().draw():
             if self._term.size.x > 0:
                 lines = ['']
             return False
         title_box = f'{self.status_title}]'
         status_line = title_box + '=' * (self._term.size.x - len(title_box))
-        self.history.draw()
         self._term.write(status_line, self._y_status)
+        self.history.draw()
         self.prompt.draw()
         return True
 
 
     def _switch_window(self, idx: int) -> None:
         self._window_idx = idx
-        self.window.draw()
+        self.window.tainted = True
 
     @property
     def _commands(self) -> dict[str, tuple[Callable[..., None | Optional[str]],
     @contextmanager
     def setup(self) -> Generator:
         'Combine multiple contexts into one and run keypress loop.'
-        self.clear()
+        print(self._blessed.clear, end='')
         with (self._blessed.raw(),
               self._blessed.fullscreen(),
               self._blessed.hidden_cursor(),
         '(Re-)calculate .size..'
         self.size = _YX(self._blessed.height, self._blessed.width)
 
-    def clear(self) -> None:
-        'Clear terminal.'
-        print(self._blessed.clear, end='')
-
     def flush(self) -> None:
         'Flush terminal.'
         print('', end='', flush=True)