aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2010-06-05 15:49:48 +0000
committerNicholas Marriott <nicm@openbsd.org>2010-06-05 15:49:48 +0000
commitcc724f327a14c607927c8ef27c4b72311a301271 (patch)
tree99c3ef2303b21d180e2f6acd966d0001666b94e8
parent43fa9a9ba60f0fba1f5c7985ed9c65cea304d2c4 (diff)
downloadrtmux-cc724f327a14c607927c8ef27c4b72311a301271.tar.gz
rtmux-cc724f327a14c607927c8ef27c4b72311a301271.tar.bz2
rtmux-cc724f327a14c607927c8ef27c4b72311a301271.zip
Make start-of-line work the same as end-of-line on wrapped lines (jump
to real start if at edge of screen). By Micah Cowan.
-rw-r--r--window-copy.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/window-copy.c b/window-copy.c
index 66402eca..efee25d0 100644
--- a/window-copy.c
+++ b/window-copy.c
@@ -1427,7 +1427,17 @@ void
window_copy_cursor_start_of_line(struct window_pane *wp)
{
struct window_copy_mode_data *data = wp->modedata;
+ struct screen *back_s = data->backing;
+ struct grid *gd = back_s->grid;
+ u_int py;
+ if (data->cx == 0) {
+ py = screen_hsize(back_s) + data->cy - data->oy;
+ while (py > 0 && gd->linedata[py-1].flags & GRID_LINE_WRAPPED) {
+ window_copy_cursor_up(wp, 0);
+ py = screen_hsize(back_s) + data->cy - data->oy;
+ }
+ }
window_copy_update_cursor(wp, 0, data->cy);
if (window_copy_update_selection(wp))
window_copy_redraw_lines(wp, data->cy, 1);