Skip to content

Commit ea93141

Browse files
authored
Don't clean terminal on each redraw but...
redraw directly on existing output !
1 parent 4c883fb commit ea93141

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

src/CliMenu.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -252,9 +252,6 @@ private function assertOpen() : void
252252
*/
253253
protected function draw() : void
254254
{
255-
$this->terminal->clean();
256-
$this->terminal->moveCursorToTop();
257-
258255
$frame = new Frame;
259256

260257
$frame->newLine(2);
@@ -272,10 +269,12 @@ protected function draw() : void
272269
$frame->addRows($this->drawMenuItem(new LineBreakItem()));
273270

274271
$frame->newLine(2);
275-
272+
273+
$this->terminal->moveCursorToTop();
276274
foreach ($frame->getRows() as $row) {
277-
$this->terminal->write($row);
275+
$this->terminal->write("\033[1E" . rtrim($row, "\r\n"));
278276
}
277+
$this->terminal->write("\033[1E\033[J");
279278

280279
$this->currentFrame = $frame;
281280
}

0 commit comments

Comments
 (0)