Sync OpenBSD patchset 733:

replace some magic mouse constants with defines for clarity. ok nicm
pull/1/head
Tiago Cunha 2010-07-02 02:56:07 +00:00
parent e4703bacb5
commit 46f27eab22
2 changed files with 21 additions and 16 deletions

16
tmux.h
View File

@ -1,4 +1,4 @@
/* $Id: tmux.h,v 1.568 2010-07-02 02:54:52 tcunha Exp $ */
/* $Id: tmux.h,v 1.569 2010-07-02 02:56:07 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -1049,9 +1049,23 @@ struct tty_ctx {
u_int last_width;
};
/*
* 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.
*/
/* Mouse input. */
struct mouse_event {
u_char b;
#define MOUSE_1 0
#define MOUSE_2 1
#define MOUSE_3 2
#define MOUSE_UP 3
#define MOUSE_BUTTON 3
#define MOUSE_45 64
u_char x;
u_char y;
};

View File

@ -1,4 +1,4 @@
/* $Id: window-copy.c,v 1.120 2010-06-06 00:23:44 tcunha Exp $ */
/* $Id: window-copy.c,v 1.121 2010-07-02 02:56:07 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -762,26 +762,17 @@ window_copy_mouse(
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) {
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 & 3) == 1) {
} else if ((m->b & MOUSE_BUTTON) == MOUSE_2) {
for (i = 0; i < 5; i++)
window_copy_cursor_down(wp, 0);
}
@ -793,7 +784,7 @@ window_copy_mouse(
* pressed, or stop the selection on their release.
*/
if (s->mode & MODE_MOUSEMOTION) {
if ((m->b & 3) != 3) {
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,7 +799,7 @@ window_copy_mouse(
}
/* Otherwise i other buttons pressed, start selection and motion. */
if ((m->b & 3) != 3) {
if ((m->b & MOUSE_BUTTON) != MOUSE_UP) {
s->mode |= MODE_MOUSEMOTION;
window_copy_update_cursor(wp, m->x, m->y);