From 5e8c75aa38ee0fc394556e0759b42b1713948412 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Wed, 3 Jul 2019 14:14:46 +0200 Subject: [PATCH] csi: implement 'civis' (show/hide cursor) --- csi.c | 4 ++-- main.c | 3 ++- terminal.h | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/csi.c b/csi.c index dd292b79..57da1c06 100644 --- a/csi.c +++ b/csi.c @@ -567,7 +567,7 @@ csi_dispatch(struct terminal *term, uint8_t final) break; case 25: - LOG_WARN("unimplemented: civis"); + term->hide_cursor = false; break; case 1000: @@ -625,7 +625,7 @@ csi_dispatch(struct terminal *term, uint8_t final) break; case 25: - LOG_WARN("unimplemented: civis"); + term->hide_cursor = true; break; case 1000: diff --git a/main.c b/main.c index 460f36e4..a29f5d8c 100644 --- a/main.c +++ b/main.c @@ -134,7 +134,8 @@ grid_render_update(struct context *c, struct buffer *buf, const struct damage *d /* Cursor here? */ bool has_cursor - = c->term.cursor.linear == linear_cursor - c->term.grid->offset; + = (!c->term.hide_cursor && + (c->term.cursor.linear == linear_cursor - c->term.grid->offset)); int x = col * c->term.cell_width; int y = row * c->term.cell_height; diff --git a/terminal.h b/terminal.h index 66f6bde0..a96b1b70 100644 --- a/terminal.h +++ b/terminal.h @@ -131,6 +131,7 @@ struct terminal { pid_t slave; int ptmx; + bool hide_cursor; enum decckm decckm; enum keypad_mode keypad_mode; bool bracketed_paste;