version 1.148, 2016/04/27 09:39:09 |
version 1.149, 2016/05/01 13:39:05 |
|
|
|
|
struct screen *window_copy_init(struct window_pane *); |
struct screen *window_copy_init(struct window_pane *); |
void window_copy_free(struct window_pane *); |
void window_copy_free(struct window_pane *); |
void window_copy_pagedown(struct window_pane *); |
void window_copy_pagedown(struct window_pane *, int); |
void window_copy_next_paragraph(struct window_pane *); |
void window_copy_next_paragraph(struct window_pane *); |
void window_copy_previous_paragraph(struct window_pane *); |
void window_copy_previous_paragraph(struct window_pane *); |
void window_copy_resize(struct window_pane *, u_int, u_int); |
void window_copy_resize(struct window_pane *, u_int, u_int); |
|
|
} |
} |
|
|
void |
void |
window_copy_pageup(struct window_pane *wp) |
window_copy_pageup(struct window_pane *wp, int half_page) |
{ |
{ |
struct window_copy_mode_data *data = wp->modedata; |
struct window_copy_mode_data *data = wp->modedata; |
struct screen *s = &data->screen; |
struct screen *s = &data->screen; |
|
|
data->cx = data->lastcx; |
data->cx = data->lastcx; |
|
|
n = 1; |
n = 1; |
if (screen_size_y(s) > 2) |
if (screen_size_y(s) > 2) { |
n = screen_size_y(s) - 2; |
if (half_page) |
|
n = screen_size_y(s) / 2; |
|
else |
|
n = screen_size_y(s) - 2; |
|
} |
|
|
if (data->oy + n > screen_hsize(data->backing)) |
if (data->oy + n > screen_hsize(data->backing)) |
data->oy = screen_hsize(data->backing); |
data->oy = screen_hsize(data->backing); |
|
|
} |
} |
|
|
void |
void |
window_copy_pagedown(struct window_pane *wp) |
window_copy_pagedown(struct window_pane *wp, int half_page) |
{ |
{ |
struct window_copy_mode_data *data = wp->modedata; |
struct window_copy_mode_data *data = wp->modedata; |
struct screen *s = &data->screen; |
struct screen *s = &data->screen; |
|
|
data->cx = data->lastcx; |
data->cx = data->lastcx; |
|
|
n = 1; |
n = 1; |
if (screen_size_y(s) > 2) |
if (screen_size_y(s) > 2) { |
n = screen_size_y(s) - 2; |
if (half_page) |
|
n = screen_size_y(s) / 2; |
|
else |
|
n = screen_size_y(s) - 2; |
|
} |
|
|
if (data->oy < n) |
if (data->oy < n) |
data->oy = 0; |
data->oy = 0; |
|
|
const char *word_separators; |
const char *word_separators; |
struct window_copy_mode_data *data = wp->modedata; |
struct window_copy_mode_data *data = wp->modedata; |
struct screen *s = &data->screen; |
struct screen *s = &data->screen; |
u_int n, np; |
u_int np; |
int keys; |
int keys; |
enum mode_key_cmd cmd; |
enum mode_key_cmd cmd; |
const char *arg, *ss; |
const char *arg, *ss; |
|
|
break; |
break; |
case MODEKEYCOPY_PREVIOUSPAGE: |
case MODEKEYCOPY_PREVIOUSPAGE: |
for (; np != 0; np--) |
for (; np != 0; np--) |
window_copy_pageup(wp); |
window_copy_pageup(wp, 0); |
break; |
break; |
case MODEKEYCOPY_NEXTPAGE: |
case MODEKEYCOPY_NEXTPAGE: |
for (; np != 0; np--) |
for (; np != 0; np--) |
window_copy_pagedown(wp); |
window_copy_pagedown(wp, 0); |
break; |
break; |
case MODEKEYCOPY_PREVIOUSPARAGRAPH: |
case MODEKEYCOPY_PREVIOUSPARAGRAPH: |
for (; np != 0; np--) |
for (; np != 0; np--) |
|
|
window_copy_next_paragraph(wp); |
window_copy_next_paragraph(wp); |
break; |
break; |
case MODEKEYCOPY_HALFPAGEUP: |
case MODEKEYCOPY_HALFPAGEUP: |
n = screen_size_y(s) / 2; |
for (; np != 0; np--) |
for (; np != 0; np--) { |
window_copy_pageup(wp, 1); |
if (data->oy + n > screen_hsize(data->backing)) |
|
data->oy = screen_hsize(data->backing); |
|
else |
|
data->oy += n; |
|
} |
|
window_copy_update_selection(wp, 1); |
|
window_copy_redraw_screen(wp); |
|
break; |
break; |
case MODEKEYCOPY_HALFPAGEDOWN: |
case MODEKEYCOPY_HALFPAGEDOWN: |
n = screen_size_y(s) / 2; |
for (; np != 0; np--) |
for (; np != 0; np--) { |
window_copy_pagedown(wp, 1); |
if (data->oy < n) |
|
data->oy = 0; |
|
else |
|
data->oy -= n; |
|
} |
|
if (data->scroll_exit && data->oy == 0) { |
|
window_pane_reset_mode(wp); |
|
return; |
|
} |
|
window_copy_update_selection(wp, 1); |
|
window_copy_redraw_screen(wp); |
|
break; |
break; |
case MODEKEYCOPY_TOPLINE: |
case MODEKEYCOPY_TOPLINE: |
data->cx = 0; |
data->cx = 0; |