version 1.2, 2009/07/27 18:51:46 |
version 1.3, 2009/07/27 19:29:35 |
|
|
struct screen *s; |
struct screen *s; |
struct screen_write_ctx ctx; |
struct screen_write_ctx ctx; |
u_int i; |
u_int i; |
|
int keys; |
|
|
wp->modedata = data = xmalloc(sizeof *data); |
wp->modedata = data = xmalloc(sizeof *data); |
data->ox = 0; |
data->ox = 0; |
|
|
screen_init(s, screen_size_x(&wp->base), screen_size_y(&wp->base), 0); |
screen_init(s, screen_size_x(&wp->base), screen_size_y(&wp->base), 0); |
s->mode &= ~MODE_CURSOR; |
s->mode &= ~MODE_CURSOR; |
|
|
mode_key_init(&data->mdata, |
keys = options_get_number(&wp->window->options, "mode-keys"); |
options_get_number(&wp->window->options, "mode-keys"), 0); |
if (keys == MODEKEY_EMACS) |
|
mode_key_init(&data->mdata, mode_key_emacs_copy); |
|
else |
|
mode_key_init(&data->mdata, mode_key_vi_copy); |
|
|
screen_write_start(&ctx, NULL, s); |
screen_write_start(&ctx, NULL, s); |
for (i = 0; i < screen_size_y(s); i++) |
for (i = 0; i < screen_size_y(s); i++) |
|
|
struct screen *s = &data->screen; |
struct screen *s = &data->screen; |
|
|
switch (mode_key_lookup(&data->mdata, key)) { |
switch (mode_key_lookup(&data->mdata, key)) { |
case MODEKEYCMD_QUIT: |
case MODEKEYCOPY_QUIT: |
window_pane_reset_mode(wp); |
window_pane_reset_mode(wp); |
break; |
break; |
case MODEKEYCMD_LEFT: |
case MODEKEYCOPY_LEFT: |
window_scroll_scroll_left(wp); |
window_scroll_scroll_left(wp); |
break; |
break; |
case MODEKEYCMD_RIGHT: |
case MODEKEYCOPY_RIGHT: |
window_scroll_scroll_right(wp); |
window_scroll_scroll_right(wp); |
break; |
break; |
case MODEKEYCMD_UP: |
case MODEKEYCOPY_UP: |
window_scroll_scroll_up(wp); |
window_scroll_scroll_up(wp); |
break; |
break; |
case MODEKEYCMD_DOWN: |
case MODEKEYCOPY_DOWN: |
window_scroll_scroll_down(wp); |
window_scroll_scroll_down(wp); |
break; |
break; |
case MODEKEYCMD_PREVIOUSPAGE: |
case MODEKEYCOPY_PREVIOUSPAGE: |
window_scroll_pageup(wp); |
window_scroll_pageup(wp); |
break; |
break; |
case MODEKEYCMD_NEXTPAGE: |
case MODEKEYCOPY_NEXTPAGE: |
if (data->oy < screen_size_y(s)) |
if (data->oy < screen_size_y(s)) |
data->oy = 0; |
data->oy = 0; |
else |
else |