mirror of
https://github.com/tmux/tmux.git
synced 2025-09-03 06:17:04 +00:00
Add StatusLeft and StatusRight mouse key modifiers for the left and
right parts of the status line.
This commit is contained in:
100
server-client.c
100
server-client.c
@ -416,7 +416,7 @@ server_client_check_mouse(struct client *c)
|
||||
key_code key;
|
||||
struct timeval tv;
|
||||
enum { NOTYPE, MOVE, DOWN, UP, DRAG, WHEEL, DOUBLE, TRIPLE } type;
|
||||
enum { NOWHERE, PANE, STATUS, BORDER } where;
|
||||
enum { NOWHERE, PANE, STATUS, STATUS_LEFT, STATUS_RIGHT, BORDER } where;
|
||||
|
||||
type = NOTYPE;
|
||||
where = NOWHERE;
|
||||
@ -495,19 +495,25 @@ have_event:
|
||||
if (type == NOTYPE)
|
||||
return (KEYC_UNKNOWN);
|
||||
|
||||
/* Always save the session. */
|
||||
/* Save the session. */
|
||||
m->s = s->id;
|
||||
m->w = -1;
|
||||
|
||||
/* Is this on the status line? */
|
||||
m->statusat = status_at_line(c);
|
||||
if (m->statusat != -1 && y == (u_int)m->statusat) {
|
||||
w = status_get_window_at(c, x);
|
||||
if (w == NULL)
|
||||
return (KEYC_UNKNOWN);
|
||||
m->w = w->id;
|
||||
where = STATUS;
|
||||
} else
|
||||
m->w = -1;
|
||||
if (x < c->status.left_size)
|
||||
where = STATUS_LEFT;
|
||||
else if (x > c->tty.sx - c->status.right_size)
|
||||
where = STATUS_RIGHT;
|
||||
else {
|
||||
w = status_get_window_at(c, x);
|
||||
if (w == NULL)
|
||||
return (KEYC_UNKNOWN);
|
||||
m->w = w->id;
|
||||
where = STATUS;
|
||||
}
|
||||
}
|
||||
|
||||
/* Not on status line. Adjust position and check for border or pane. */
|
||||
if (where == NOWHERE) {
|
||||
@ -560,6 +566,10 @@ have_event:
|
||||
key = KEYC_MOUSEDRAGEND1_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_MOUSEDRAGEND1_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_MOUSEDRAGEND1_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_MOUSEDRAGEND1_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_MOUSEDRAGEND1_BORDER;
|
||||
break;
|
||||
@ -568,6 +578,10 @@ have_event:
|
||||
key = KEYC_MOUSEDRAGEND2_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_MOUSEDRAGEND2_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_MOUSEDRAGEND2_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_MOUSEDRAGEND2_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_MOUSEDRAGEND2_BORDER;
|
||||
break;
|
||||
@ -576,6 +590,10 @@ have_event:
|
||||
key = KEYC_MOUSEDRAGEND3_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_MOUSEDRAGEND3_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_MOUSEDRAGEND3_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_MOUSEDRAGEND3_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_MOUSEDRAGEND3_BORDER;
|
||||
break;
|
||||
@ -611,6 +629,10 @@ have_event:
|
||||
key = KEYC_MOUSEDRAG1_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_MOUSEDRAG1_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_MOUSEDRAG1_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_MOUSEDRAG1_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_MOUSEDRAG1_BORDER;
|
||||
break;
|
||||
@ -619,6 +641,10 @@ have_event:
|
||||
key = KEYC_MOUSEDRAG2_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_MOUSEDRAG2_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_MOUSEDRAG2_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_MOUSEDRAG2_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_MOUSEDRAG2_BORDER;
|
||||
break;
|
||||
@ -627,6 +653,10 @@ have_event:
|
||||
key = KEYC_MOUSEDRAG3_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_MOUSEDRAG3_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_MOUSEDRAG3_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_MOUSEDRAG3_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_MOUSEDRAG3_BORDER;
|
||||
break;
|
||||
@ -645,6 +675,10 @@ have_event:
|
||||
key = KEYC_WHEELUP_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_WHEELUP_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_WHEELUP_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_WHEELUP_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_WHEELUP_BORDER;
|
||||
} else {
|
||||
@ -663,6 +697,10 @@ have_event:
|
||||
key = KEYC_MOUSEUP1_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_MOUSEUP1_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_MOUSEUP1_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_MOUSEUP1_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_MOUSEUP1_BORDER;
|
||||
break;
|
||||
@ -671,6 +709,10 @@ have_event:
|
||||
key = KEYC_MOUSEUP2_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_MOUSEUP2_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_MOUSEUP2_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_MOUSEUP2_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_MOUSEUP2_BORDER;
|
||||
break;
|
||||
@ -679,6 +721,10 @@ have_event:
|
||||
key = KEYC_MOUSEUP3_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_MOUSEUP3_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_MOUSEUP3_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_MOUSEUP3_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_MOUSEUP3_BORDER;
|
||||
break;
|
||||
@ -691,6 +737,10 @@ have_event:
|
||||
key = KEYC_MOUSEDOWN1_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_MOUSEDOWN1_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_MOUSEDOWN1_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_MOUSEDOWN1_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_MOUSEDOWN1_BORDER;
|
||||
break;
|
||||
@ -699,6 +749,10 @@ have_event:
|
||||
key = KEYC_MOUSEDOWN2_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_MOUSEDOWN2_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_MOUSEDOWN2_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_MOUSEDOWN2_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_MOUSEDOWN2_BORDER;
|
||||
break;
|
||||
@ -707,6 +761,10 @@ have_event:
|
||||
key = KEYC_MOUSEDOWN3_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_MOUSEDOWN3_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_MOUSEDOWN3_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_MOUSEDOWN3_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_MOUSEDOWN3_BORDER;
|
||||
break;
|
||||
@ -719,6 +777,10 @@ have_event:
|
||||
key = KEYC_DOUBLECLICK1_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_DOUBLECLICK1_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_DOUBLECLICK1_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_DOUBLECLICK1_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_DOUBLECLICK1_BORDER;
|
||||
break;
|
||||
@ -727,6 +789,10 @@ have_event:
|
||||
key = KEYC_DOUBLECLICK2_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_DOUBLECLICK2_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_DOUBLECLICK2_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_DOUBLECLICK2_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_DOUBLECLICK2_BORDER;
|
||||
break;
|
||||
@ -735,6 +801,10 @@ have_event:
|
||||
key = KEYC_DOUBLECLICK3_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_DOUBLECLICK3_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_DOUBLECLICK3_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_DOUBLECLICK3_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_DOUBLECLICK3_BORDER;
|
||||
break;
|
||||
@ -747,6 +817,10 @@ have_event:
|
||||
key = KEYC_TRIPLECLICK1_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_TRIPLECLICK1_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_TRIPLECLICK1_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_TRIPLECLICK1_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_TRIPLECLICK1_BORDER;
|
||||
break;
|
||||
@ -755,6 +829,10 @@ have_event:
|
||||
key = KEYC_TRIPLECLICK2_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_TRIPLECLICK2_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_TRIPLECLICK2_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_TRIPLECLICK2_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_TRIPLECLICK2_BORDER;
|
||||
break;
|
||||
@ -763,6 +841,10 @@ have_event:
|
||||
key = KEYC_TRIPLECLICK3_PANE;
|
||||
if (where == STATUS)
|
||||
key = KEYC_TRIPLECLICK3_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
key = KEYC_TRIPLECLICK3_STATUS_LEFT;
|
||||
if (where == STATUS_RIGHT)
|
||||
key = KEYC_TRIPLECLICK3_STATUS_RIGHT;
|
||||
if (where == BORDER)
|
||||
key = KEYC_TRIPLECLICK3_BORDER;
|
||||
break;
|
||||
|
Reference in New Issue
Block a user