diff options
author | nicm <nicm> | 2020-02-14 13:57:58 +0000 |
---|---|---|
committer | nicm <nicm> | 2020-02-14 13:57:58 +0000 |
commit | 58b47bf01b4136a7f90cb6852b0ecb1b414e4494 (patch) | |
tree | d043db2b9fbaa02ca9fa29d5a95064c1bf1798bd /window.c | |
parent | f48b041cf22a55bbd9f6e1ab498cf610fdfc1a5f (diff) | |
download | rtmux-58b47bf01b4136a7f90cb6852b0ecb1b414e4494.tar.gz rtmux-58b47bf01b4136a7f90cb6852b0ecb1b414e4494.tar.bz2 rtmux-58b47bf01b4136a7f90cb6852b0ecb1b414e4494.zip |
Fix top/bottom pane calculation with pane border status enabled,
reported by Stanislav Spassov.
Diffstat (limited to 'window.c')
-rw-r--r-- | window.c | 21 |
1 files changed, 14 insertions, 7 deletions
@@ -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); |