version 1.94, 2013/07/12 09:52:36 |
version 1.95, 2013/10/23 11:31:03 |
|
|
void window_copy_cursor_start_of_line(struct window_pane *); |
void window_copy_cursor_start_of_line(struct window_pane *); |
void window_copy_cursor_back_to_indentation(struct window_pane *); |
void window_copy_cursor_back_to_indentation(struct window_pane *); |
void window_copy_cursor_end_of_line(struct window_pane *); |
void window_copy_cursor_end_of_line(struct window_pane *); |
|
void window_copy_other_end(struct window_pane *); |
void window_copy_cursor_left(struct window_pane *); |
void window_copy_cursor_left(struct window_pane *); |
void window_copy_cursor_right(struct window_pane *); |
void window_copy_cursor_right(struct window_pane *); |
void window_copy_cursor_up(struct window_pane *, int); |
void window_copy_cursor_up(struct window_pane *, int); |
|
|
case MODEKEYCOPY_CANCEL: |
case MODEKEYCOPY_CANCEL: |
window_pane_reset_mode(wp); |
window_pane_reset_mode(wp); |
return; |
return; |
|
case MODEKEYCOPY_OTHEREND: |
|
for (; np != 0; np--) |
|
window_copy_other_end(wp); |
|
break; |
case MODEKEYCOPY_LEFT: |
case MODEKEYCOPY_LEFT: |
for (; np != 0; np--) |
for (; np != 0; np--) |
window_copy_cursor_left(wp); |
window_copy_cursor_left(wp); |
|
|
|
|
if (window_copy_update_selection(wp)) |
if (window_copy_update_selection(wp)) |
window_copy_redraw_lines(wp, data->cy, 1); |
window_copy_redraw_lines(wp, data->cy, 1); |
|
} |
|
|
|
void |
|
window_copy_other_end(struct window_pane *wp) |
|
{ |
|
struct window_copy_mode_data *data = wp->modedata; |
|
struct screen *s = &data->screen; |
|
u_int selx, sely, cx, cy, yy; |
|
|
|
if (!s->sel.flag) |
|
return; |
|
|
|
selx = data->selx; |
|
sely = data->sely; |
|
cx = data->cx; |
|
cy = data->cy; |
|
yy = screen_hsize(data->backing) + data->cy - data->oy; |
|
|
|
data->selx = cx; |
|
data->sely = yy; |
|
data->cx = selx; |
|
|
|
if (sely < screen_hsize(data->backing) - data->oy) { |
|
data->oy = screen_hsize(data->backing) - sely; |
|
data->cy = 0; |
|
} else if (sely > screen_hsize(data->backing) - data->oy + screen_size_y(s)) { |
|
data->oy = screen_hsize(data->backing) - sely + screen_size_y(s) - 1; |
|
data->cy = screen_size_y(s) - 1; |
|
|
|
} else |
|
data->cy = cy + sely - yy; |
|
|
|
window_copy_redraw_screen(wp); |
} |
} |
|
|
void |
void |