chiark / gitweb /
terminal/screen: add cursor rendering
[elogind.git] / src / libsystemd-terminal / subterm.c
index 563cbf0823a9928689f2c2740785ad29faab63c4..321cd35f528b5fe1a496fbb9c6d15610831ef759 100644 (file)
@@ -286,6 +286,8 @@ static Output *output_free(Output *o) {
         if (!o)
                 return NULL;
 
+        /* re-enable cursor */
+        output_printf(o, "\e[?25h");
         /* disable alternate screen buffer */
         output_printf(o, "\e[?1049l");
         output_flush(o);
@@ -317,6 +319,11 @@ static int output_new(Output **out, int fd) {
         if (r < 0)
                 goto error;
 
+        /* always hide cursor */
+        r = output_printf(o, "\e[?25l");
+        if (r < 0)
+                goto error;
+
         r = output_flush(o);
         if (r < 0)
                 goto error;
@@ -539,10 +546,6 @@ static void output_draw(Output *o, bool menu, term_screen *screen) {
         else
                 output_draw_screen(o, screen);
 
-        /* show cursor */
-        if (!(screen->flags & TERM_FLAG_HIDE_CURSOR))
-                output_printf(o, "\e[?25h");
-
         /*
          * Hack: sd-term was not written to support TTY as output-objects, thus
          * expects callers to use term_screen_feed_keyboard(). However, we