Hide cursor with flag.

This commit is contained in:
Nicholas Marriott 2008-06-19 23:07:11 +00:00
parent ead089ece6
commit 7cebf4768b
3 changed files with 13 additions and 4 deletions

View File

@ -1,4 +1,4 @@
/* $Id: server-fn.c,v 1.45 2008-06-19 20:45:20 nicm Exp $ */ /* $Id: server-fn.c,v 1.46 2008-06-19 23:07:11 nicm Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -33,6 +33,7 @@ server_set_client_message(struct client *c, const char *msg)
fatal("clock_gettime"); fatal("clock_gettime");
timespecadd(&c->message_timer, &ts, &c->message_timer); timespecadd(&c->message_timer, &ts, &c->message_timer);
c->tty.flags |= TTY_NOCURSOR;
c->flags |= CLIENT_STATUS; c->flags |= CLIENT_STATUS;
} }
@ -45,6 +46,7 @@ server_clear_client_message(struct client *c)
xfree(c->message_string); xfree(c->message_string);
c->message_string = NULL; c->message_string = NULL;
c->tty.flags &= ~TTY_NOCURSOR;
c->flags |= CLIENT_STATUS; c->flags |= CLIENT_STATUS;
} }
@ -60,6 +62,7 @@ server_set_client_prompt(
c->prompt_callback = fn; c->prompt_callback = fn;
c->prompt_data = data; c->prompt_data = data;
c->tty.flags |= TTY_NOCURSOR;
c->flags |= CLIENT_STATUS; c->flags |= CLIENT_STATUS;
} }
@ -74,6 +77,7 @@ server_clear_client_prompt(struct client *c)
xfree(c->prompt_buffer); xfree(c->prompt_buffer);
c->tty.flags &= ~TTY_NOCURSOR;
c->flags |= CLIENT_STATUS; c->flags |= CLIENT_STATUS;
} }

5
tmux.h
View File

@ -1,4 +1,4 @@
/* $Id: tmux.h,v 1.154 2008-06-19 20:45:21 nicm Exp $ */ /* $Id: tmux.h,v 1.155 2008-06-19 23:07:11 nicm Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -651,6 +651,9 @@ struct tty {
u_char acs[UCHAR_MAX + 1]; u_char acs[UCHAR_MAX + 1];
#define TTY_NOCURSOR 0x1
int flags;
size_t ksize; /* maximum key size */ size_t ksize; /* maximum key size */
RB_HEAD(tty_keys, tty_key) ktree; RB_HEAD(tty_keys, tty_key) ktree;
}; };

6
tty.c
View File

@ -1,4 +1,4 @@
/* $Id: tty.c,v 1.28 2008-06-18 22:21:51 nicm Exp $ */ /* $Id: tty.c,v 1.29 2008-06-19 23:07:11 nicm Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -79,6 +79,8 @@ tty_open(struct tty *tty, char **cause)
tty->attr = 0; tty->attr = 0;
tty->colr = 0x70; tty->colr = 0x70;
tty->flags = 0;
tty_keys_init(tty); tty_keys_init(tty);
tty_fill_acs(tty); tty_fill_acs(tty);
@ -493,7 +495,7 @@ tty_vwrite(struct tty *tty, struct screen *s, int cmd, va_list ap)
} }
break; break;
case TTY_CURSORON: case TTY_CURSORON:
if (cursor_normal != NULL) if (!(tty->flags & TTY_NOCURSOR) && cursor_normal != NULL)
tty_puts(tty, cursor_normal); tty_puts(tty, cursor_normal);
break; break;
case TTY_CURSOROFF: case TTY_CURSOROFF: