=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/window-copy.c,v retrieving revision 1.59 retrieving revision 1.60 diff -c -r1.59 -r1.60 *** src/usr.bin/tmux/window-copy.c 2010/06/06 19:00:13 1.59 --- src/usr.bin/tmux/window-copy.c 2010/06/29 05:24:49 1.60 *************** *** 1,4 **** ! /* $OpenBSD: window-copy.c,v 1.59 2010/06/06 19:00:13 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: window-copy.c,v 1.60 2010/06/29 05:24:49 tedu Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 762,787 **** struct screen *s = &data->screen; u_int i; - /* - * xterm mouse mode is fairly silly. Buttons are in the bottom two - * bits: 0 button 1; 1 button 2; 2 button 3; 3 buttons released. - * - * Bit 3 is shift; bit 4 is meta; bit 5 control. - * - * Bit 6 is added for mouse buttons 4 and 5. - */ - if (m->x >= screen_size_x(s)) return; if (m->y >= screen_size_y(s)) return; /* If mouse wheel (buttons 4 and 5), scroll. */ ! if ((m->b & 64) == 64) { ! if ((m->b & 3) == 0) { for (i = 0; i < 5; i++) window_copy_cursor_up(wp, 0); ! } else if ((m->b & 3) == 1) { for (i = 0; i < 5; i++) window_copy_cursor_down(wp, 0); } --- 762,778 ---- struct screen *s = &data->screen; u_int i; if (m->x >= screen_size_x(s)) return; if (m->y >= screen_size_y(s)) return; /* If mouse wheel (buttons 4 and 5), scroll. */ ! if ((m->b & MOUSE_45)) { ! if ((m->b & MOUSE_BUTTON) == MOUSE_1) { for (i = 0; i < 5; i++) window_copy_cursor_up(wp, 0); ! } else if ((m->b & MOUSE_BUTTON) == MOUSE_2) { for (i = 0; i < 5; i++) window_copy_cursor_down(wp, 0); } *************** *** 793,799 **** * pressed, or stop the selection on their release. */ if (s->mode & MODE_MOUSEMOTION) { ! if ((m->b & 3) != 3) { window_copy_update_cursor(wp, m->x, m->y); if (window_copy_update_selection(wp)) window_copy_redraw_screen(wp); --- 784,790 ---- * pressed, or stop the selection on their release. */ if (s->mode & MODE_MOUSEMOTION) { ! if ((m->b & MOUSE_BUTTON) != MOUSE_UP) { window_copy_update_cursor(wp, m->x, m->y); if (window_copy_update_selection(wp)) window_copy_redraw_screen(wp); *************** *** 808,814 **** } /* Otherwise i other buttons pressed, start selection and motion. */ ! if ((m->b & 3) != 3) { s->mode |= MODE_MOUSEMOTION; window_copy_update_cursor(wp, m->x, m->y); --- 799,805 ---- } /* Otherwise i other buttons pressed, start selection and motion. */ ! if ((m->b & MOUSE_BUTTON) != MOUSE_UP) { s->mode |= MODE_MOUSEMOTION; window_copy_update_cursor(wp, m->x, m->y);