summaryrefslogtreecommitdiffstats
path: root/screen-write.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2010-12-29 21:49:06 +0000
committerNicholas Marriott <nicm@openbsd.org>2010-12-29 21:49:06 +0000
commitf7c42c21bacf84af52079b239a18294851fbdb3a (patch)
treec5d086441c15ac8629880b2043f95ea3758a719d /screen-write.c
parent230e39ec3558142c94858efae53c36ab0efbcf59 (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.c19
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. */