=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/tmux.h,v retrieving revision 1.383 retrieving revision 1.384 diff -u -r1.383 -r1.384 --- src/usr.bin/tmux/tmux.h 2013/03/21 18:47:56 1.383 +++ src/usr.bin/tmux/tmux.h 2013/03/22 10:33:50 1.384 @@ -1,4 +1,4 @@ -/* $OpenBSD: tmux.h,v 1.383 2013/03/21 18:47:56 nicm Exp $ */ +/* $OpenBSD: tmux.h,v 1.384 2013/03/22 10:33:50 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -665,7 +665,8 @@ #define MODE_MOUSE_BUTTON 0x40 #define MODE_MOUSE_ANY 0x80 #define MODE_MOUSE_UTF8 0x100 -#define MODE_BRACKETPASTE 0x200 +#define MODE_MOUSE_SGR 0x200 +#define MODE_BRACKETPASTE 0x400 #define ALL_MOUSE_MODES (MODE_MOUSE_STANDARD|MODE_MOUSE_BUTTON|MODE_MOUSE_ANY) @@ -1153,6 +1154,9 @@ * - bits 3, 4 and 5 are for keys * - bit 6 is set for dragging * - bit 7 for buttons 4 and 5 + * + * With the SGR 1006 extension the released button becomes known. Store these + * in separate fields and store the value converted to the old format in xb. */ struct mouse_event { u_int xb; @@ -1164,6 +1168,10 @@ u_int y; u_int ly; u_int sy; + + u_int sgr; /* whether the input arrived in SGR format */ + u_int sgr_xb; /* only for SGR: the unmangled button */ + u_int sgr_rel; /* only for SGR: whether it is a release event */ u_int button; u_int clicks;