From d2160e3f838bc2f5c08dffc0f05bc27502668ed7 Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 10 Oct 2013 12:08:14 +0000 Subject: mouse-resize-pane: Only resize on border select The current behaviour of mouse-resize-pane is such that if the mouse button is held down and a selection takes place within a pane, that if the mouse pointer then hits a border edge, that pane-resize would initiate. This seems counter-intuitive; instead, check for a resize condition if the border of a pane is selected, and in the case of mouse selection within a pane, no longer resize the pane if edge of the border is hit. By Thomas Adam. --- layout.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'layout.c') diff --git a/layout.c b/layout.c index 4dd3756c..b91b86cd 100644 --- a/layout.c +++ b/layout.c @@ -533,6 +533,9 @@ layout_resize_pane_mouse(struct client *c) pane_border = 0; if (m->event & MOUSE_EVENT_DRAG && m->flags & MOUSE_RESIZE_PANE) { TAILQ_FOREACH(wp, &w->panes, entry) { + if (!window_pane_visible(wp)) + continue; + if (wp->xoff + wp->sx == m->lx && wp->yoff <= 1 + m->ly && wp->yoff + wp->sy >= m->ly) { @@ -550,7 +553,7 @@ layout_resize_pane_mouse(struct client *c) } if (pane_border) server_redraw_window(w); - } else if (~m->event & MOUSE_EVENT_UP) { + } else if (m->event & MOUSE_EVENT_DOWN) { TAILQ_FOREACH(wp, &w->panes, entry) { if ((wp->xoff + wp->sx == m->x && wp->yoff <= 1 + m->y && -- cgit