version 1.64, 2010/12/11 17:56:01 |
version 1.65, 2010/12/29 21:49:06 |
|
|
s = &data->screen; |
s = &data->screen; |
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); |
if (options_get_number(&wp->window->options, "mode-mouse")) |
if (options_get_number(&wp->window->options, "mode-mouse")) |
s->mode |= MODE_MOUSE; |
s->mode |= MODE_MOUSE_STANDARD; |
|
|
keys = options_get_number(&wp->window->options, "mode-keys"); |
keys = options_get_number(&wp->window->options, "mode-keys"); |
if (keys == MODEKEY_EMACS) |
if (keys == MODEKEY_EMACS) |
|
|
* If already reading motion, move the cursor while buttons are still |
* If already reading motion, move the cursor while buttons are still |
* pressed, or stop the selection on their release. |
* pressed, or stop the selection on their release. |
*/ |
*/ |
if (s->mode & MODE_MOUSEMOTION) { |
if (s->mode & MODE_MOUSE_ANY) { |
if ((m->b & MOUSE_BUTTON) != MOUSE_UP) { |
if ((m->b & MOUSE_BUTTON) != MOUSE_UP) { |
window_copy_update_cursor(wp, m->x, m->y); |
window_copy_update_cursor(wp, m->x, m->y); |
if (window_copy_update_selection(wp)) |
if (window_copy_update_selection(wp)) |
window_copy_redraw_screen(wp); |
window_copy_redraw_screen(wp); |
} else { |
} else { |
s->mode &= ~MODE_MOUSEMOTION; |
s->mode &= ~MODE_MOUSE_ANY; |
|
s->mode |= MODE_MOUSE_STANDARD; |
if (sess != NULL) { |
if (sess != NULL) { |
window_copy_copy_selection(wp, sess); |
window_copy_copy_selection(wp, sess); |
window_pane_reset_mode(wp); |
window_pane_reset_mode(wp); |
|
|
return; |
return; |
} |
} |
|
|
/* Otherwise i other buttons pressed, start selection and motion. */ |
/* Otherwise if other buttons pressed, start selection and motion. */ |
if ((m->b & MOUSE_BUTTON) != MOUSE_UP) { |
if ((m->b & MOUSE_BUTTON) != MOUSE_UP) { |
s->mode |= MODE_MOUSEMOTION; |
s->mode &= ~MODE_MOUSE_STANDARD; |
|
s->mode |= MODE_MOUSE_ANY; |
|
|
window_copy_update_cursor(wp, m->x, m->y); |
window_copy_update_cursor(wp, m->x, m->y); |
window_copy_start_selection(wp); |
window_copy_start_selection(wp); |