aboutsummaryrefslogtreecommitdiff
path: root/layout.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2012-11-22 16:48:50 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2012-11-22 16:48:50 +0000
commit63f451965cf26bf6baadc374bd0dcadc8ca66308 (patch)
treeac3b5f838273eed3271e04b4132fb22807705c42 /layout.c
parent60808bbdede5c489a1faa6671999a92a67b28024 (diff)
parentc04aa9020782fe0a944db2adf5a03e9f52618bea (diff)
downloadrtmux-63f451965cf26bf6baadc374bd0dcadc8ca66308.tar.gz
rtmux-63f451965cf26bf6baadc374bd0dcadc8ca66308.tar.bz2
rtmux-63f451965cf26bf6baadc374bd0dcadc8ca66308.zip
Merge branch 'master' of ssh://tmux.git.sourceforge.net/gitroot/tmux/tmux
Diffstat (limited to 'layout.c')
-rw-r--r--layout.c41
1 files changed, 21 insertions, 20 deletions
diff --git a/layout.c b/layout.c
index fc77c928..3eaeb5b7 100644
--- a/layout.c
+++ b/layout.c
@@ -488,50 +488,51 @@ layout_resize_pane(struct window_pane *wp, enum layout_type type, int change)
}
void
-layout_resize_pane_mouse(struct client *c, struct mouse_event *mouse)
+layout_resize_pane_mouse(struct client *c)
{
struct window *w;
struct window_pane *wp;
+ struct mouse_event *m = &c->tty.mouse;
int pane_border;
w = c->session->curw->window;
pane_border = 0;
- if ((c->last_mouse.b & MOUSE_BUTTON) != MOUSE_UP &&
- (c->last_mouse.b & MOUSE_RESIZE_PANE)) {
+ if (m->event & MOUSE_EVENT_DRAG && m->flags & MOUSE_RESIZE_PANE) {
TAILQ_FOREACH(wp, &w->panes, entry) {
- if (wp->xoff + wp->sx == c->last_mouse.x &&
- wp->yoff <= 1 + c->last_mouse.y &&
- wp->yoff + wp->sy >= c->last_mouse.y) {
+ if (wp->xoff + wp->sx == m->lx &&
+ wp->yoff <= 1 + m->ly &&
+ wp->yoff + wp->sy >= m->ly) {
layout_resize_pane(wp, LAYOUT_LEFTRIGHT,
- mouse->x - c->last_mouse.x);
+ m->x - m->lx);
pane_border = 1;
}
- if (wp->yoff + wp->sy == c->last_mouse.y &&
- wp->xoff <= 1 + c->last_mouse.x &&
- wp->xoff + wp->sx >= c->last_mouse.x) {
+ if (wp->yoff + wp->sy == m->ly &&
+ wp->xoff <= 1 + m->lx &&
+ wp->xoff + wp->sx >= m->lx) {
layout_resize_pane(wp, LAYOUT_TOPBOTTOM,
- mouse->y - c->last_mouse.y);
+ m->y - m->ly);
pane_border = 1;
}
}
if (pane_border)
server_redraw_window(w);
- } else if (mouse->b != MOUSE_UP &&
- mouse->b == (mouse->b & MOUSE_BUTTON)) {
+ } else if (~m->event & MOUSE_EVENT_UP) {
TAILQ_FOREACH(wp, &w->panes, entry) {
- if ((wp->xoff + wp->sx == mouse->x &&
- wp->yoff <= 1 + mouse->y &&
- wp->yoff + wp->sy >= mouse->y) ||
- (wp->yoff + wp->sy == mouse->y &&
- wp->xoff <= 1 + mouse->x &&
- wp->xoff + wp->sx >= mouse->x)) {
+ if ((wp->xoff + wp->sx == m->x &&
+ wp->yoff <= 1 + m->y &&
+ wp->yoff + wp->sy >= m->y) ||
+ (wp->yoff + wp->sy == m->y &&
+ wp->xoff <= 1 + m->x &&
+ wp->xoff + wp->sx >= m->x)) {
pane_border = 1;
}
}
}
if (pane_border)
- mouse->b |= MOUSE_RESIZE_PANE;
+ m->flags |= MOUSE_RESIZE_PANE;
+ else
+ m->flags &= ~MOUSE_RESIZE_PANE;
}
int