summaryrefslogtreecommitdiffstats
path: root/window.c
diff options
context:
space:
mode:
authornicm <nicm>2020-02-14 13:57:58 +0000
committernicm <nicm>2020-02-14 13:57:58 +0000
commit58b47bf01b4136a7f90cb6852b0ecb1b414e4494 (patch)
treed043db2b9fbaa02ca9fa29d5a95064c1bf1798bd /window.c
parentf48b041cf22a55bbd9f6e1ab498cf610fdfc1a5f (diff)
Fix top/bottom pane calculation with pane border status enabled,
reported by Stanislav Spassov.
Diffstat (limited to 'window.c')
-rw-r--r--window.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/window.c b/window.c
index bd25b5d1..a4b452eb 100644
--- a/window.c
+++ b/window.c
@@ -541,31 +541,38 @@ window_get_active_at(struct window *w, u_int x, u_int y)
struct window_pane *
window_find_string(struct window *w, const char *s)
{
- u_int x, y;
+ u_int x, y, top = 0, bottom = w->sy - 1;
+ int status;
x = w->sx / 2;
y = w->sy / 2;
+ status = options_get_number(w->options, "pane-border-status");
+ if (status == PANE_STATUS_TOP)
+ top++;
+ else if (status == PANE_STATUS_BOTTOM)
+ bottom--;
+
if (strcasecmp(s, "top") == 0)
- y = 0;
+ y = top;
else if (strcasecmp(s, "bottom") == 0)
- y = w->sy - 1;
+ y = bottom;
else if (strcasecmp(s, "left") == 0)
x = 0;
else if (strcasecmp(s, "right") == 0)
x = w->sx - 1;
else if (strcasecmp(s, "top-left") == 0) {
x = 0;
- y = 0;
+ y = top;
} else if (strcasecmp(s, "top-right") == 0) {
x = w->sx - 1;
- y = 0;
+ y = top;
} else if (strcasecmp(s, "bottom-left") == 0) {
x = 0;
- y = w->sy - 1;
+ y = bottom;
} else if (strcasecmp(s, "bottom-right") == 0) {
x = w->sx - 1;
- y = w->sy - 1;
+ y = bottom;
} else
return (NULL);