version 1.20, 2011/01/01 03:43:20 |
version 1.21, 2011/01/03 23:35:21 |
|
|
void |
void |
input_mouse(struct window_pane *wp, struct mouse_event *m) |
input_mouse(struct window_pane *wp, struct mouse_event *m) |
{ |
{ |
char out[8]; |
char buf[10]; |
|
size_t len; |
|
|
if (wp->screen->mode & ALL_MOUSE_MODES) { |
if (wp->screen->mode & ALL_MOUSE_MODES) { |
xsnprintf(out, sizeof out, |
if (wp->screen->mode & MODE_MOUSE_UTF8) { |
"\033[M%c%c%c", m->b + 32, m->x + 33, m->y + 33); |
len = xsnprintf(buf, sizeof buf, "\033[M"); |
bufferevent_write(wp->event, out, strlen(out)); |
len += utf8_split2(m->b + 32, &buf[len]); |
|
len += utf8_split2(m->x + 33, &buf[len]); |
|
len += utf8_split2(m->y + 33, &buf[len]); |
|
} else { |
|
if (m->b > 223 || m->x >= 222 || m->y > 222) |
|
return; |
|
len = xsnprintf(buf, sizeof buf, "\033[M"); |
|
buf[len++] = m->b + 32; |
|
buf[len++] = m->x + 33; |
|
buf[len++] = m->y + 33; |
|
} |
|
bufferevent_write(wp->event, buf, len); |
} |
} |
} |
} |