diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2010-12-29 21:49:06 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2010-12-29 21:49:06 +0000 |
commit | f7c42c21bacf84af52079b239a18294851fbdb3a (patch) | |
tree | c5d086441c15ac8629880b2043f95ea3758a719d /screen-write.c | |
parent | 230e39ec3558142c94858efae53c36ab0efbcf59 (diff) |
Support all four of the xterm mouse modes. Based on a diff from hsim at
gmx.li.
Diffstat (limited to 'screen-write.c')
-rw-r--r-- | screen-write.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/screen-write.c b/screen-write.c index 882fced4..c4e873b1 100644 --- a/screen-write.c +++ b/screen-write.c @@ -829,16 +829,23 @@ screen_write_insertmode(struct screen_write_ctx *ctx, int state) s->mode &= ~MODE_INSERT; } -/* Set mouse mode. */ +/* Set mouse mode off. */ void -screen_write_mousemode(struct screen_write_ctx *ctx, int state) +screen_write_mousemode_off(struct screen_write_ctx *ctx) { struct screen *s = ctx->s; - if (state) - s->mode |= MODE_MOUSE; - else - s->mode &= ~MODE_MOUSE; + s->mode &= ~ALL_MOUSE_MODES; +} + +/* Set mouse mode on. */ +void +screen_write_mousemode_on(struct screen_write_ctx *ctx, int mode) +{ + struct screen *s = ctx->s; + + s->mode &= ~ALL_MOUSE_MODES; + s->mode |= mode; } /* Line feed. */ |