diff options
-rw-r--r-- | window-copy.c | 2 | ||||
-rw-r--r-- | window.c | 16 |
2 files changed, 10 insertions, 8 deletions
diff --git a/window-copy.c b/window-copy.c index e50db0a1..07129c5a 100644 --- a/window-copy.c +++ b/window-copy.c @@ -2038,7 +2038,7 @@ window_copy_cursor_down(struct window_pane *wp, int scroll_only) data->lastsx = ox; } - if (s->sel.lineflag == LINE_SEL_RIGHT_LEFT && oy == data->sely) + if (s->sel.lineflag == LINE_SEL_RIGHT_LEFT && oy == data->endsely) window_copy_other_end(wp); data->cx = data->lastcx; @@ -1272,7 +1272,7 @@ window_pane_search(struct window_pane *wp, const char *searchstr, { struct screen *s = &wp->base; char *newsearchstr, *line, *msg; - u_int i; + u_int i; msg = NULL; xasprintf(&newsearchstr, "*%s*", searchstr); @@ -1320,17 +1320,18 @@ window_pane_find_up(struct window_pane *wp) { struct window_pane *next, *best, **list; u_int edge, left, right, end, size; - int found; + int status, found; if (wp == NULL || !window_pane_visible(wp)) return (NULL); + status = options_get_number(wp->window->options, "pane-border-status"); list = NULL; size = 0; edge = wp->yoff; - if (edge == 0) - edge = wp->window->sy + 1; + if (edge == (status == 1 ? 1 : 0)) + edge = wp->window->sy + 1 - (status == 2 ? 1 : 0); left = wp->xoff; right = wp->xoff + wp->sx; @@ -1366,17 +1367,18 @@ window_pane_find_down(struct window_pane *wp) { struct window_pane *next, *best, **list; u_int edge, left, right, end, size; - int found; + int status, found; if (wp == NULL || !window_pane_visible(wp)) return (NULL); + status = options_get_number(wp->window->options, "pane-border-status"); list = NULL; size = 0; edge = wp->yoff + wp->sy + 1; - if (edge >= wp->window->sy) - edge = 0; + if (edge >= wp->window->sy - (status == 2 ? 1 : 0)) + edge = (status == 1 ? 1 : 0); left = wp->xoff; right = wp->xoff + wp->sx; |