x11-terms/rxvt-unicode: Missing sgr-mouse-mode-flag.patch
This commit is contained in:
parent
d4ad95427b
commit
1d38f0f4ec
|
@ -0,0 +1,165 @@
|
|||
diff --git a/config.h.in b/config.h.in
|
||||
index 914d606..b869bfb 100644
|
||||
--- a/config.h.in
|
||||
+++ b/config.h.in
|
||||
@@ -9,6 +9,9 @@
|
||||
/* Define if you want handling for rarely used but handy features */
|
||||
#undef ENABLE_FRILLS
|
||||
|
||||
+/* Define if you want support for SGR mouse mode 1006 */
|
||||
+#undef ENABLE_SGRMOUSE
|
||||
+
|
||||
/* Define if you can embed a perl interpreter */
|
||||
#undef ENABLE_PERL
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 0da3b59..c8b9c80 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -76,6 +76,7 @@ AC_SEARCH_LIBS(gethostbyname, nsl)
|
||||
AC_SEARCH_LIBS(socket, socket)
|
||||
|
||||
support_frills=yes
|
||||
+support_sgrmouse=yes
|
||||
support_inheritpixmap=yes
|
||||
support_fading=yes
|
||||
support_keepscrolling=yes
|
||||
@@ -109,6 +110,7 @@ AC_ARG_ENABLE(everything,
|
||||
[
|
||||
if test x$enableval = xno; then
|
||||
support_frills=no
|
||||
+ support_sgrmouse=no
|
||||
support_inheritpixmap=no
|
||||
support_fading=no
|
||||
support_keepscrolling=no
|
||||
@@ -137,6 +139,7 @@ AC_ARG_ENABLE(everything,
|
||||
fi
|
||||
if test x$enableval = xyes; then
|
||||
support_frills=yes
|
||||
+ support_sgrmouse=yes
|
||||
support_inheritpixmap=yes
|
||||
support_fading=yes
|
||||
support_keepscrolling=yes
|
||||
@@ -359,6 +362,12 @@ AC_ARG_ENABLE(frills,
|
||||
support_frills=$enableval
|
||||
fi])
|
||||
|
||||
+AC_ARG_ENABLE(sgrmouse,
|
||||
+ [ --enable-sgrmouse enable support for SGR mouse mode 1006],
|
||||
+ [if test x$enableval = xyes -o x$enableval = xno; then
|
||||
+ support_sgrmouse=$enableval
|
||||
+ fi])
|
||||
+
|
||||
AC_ARG_ENABLE(keepscrolling,
|
||||
[ --enable-keepscrolling enable continual scrolling on scrollbar arrow press],
|
||||
[if test x$enableval = xyes -o x$enableval = xno; then
|
||||
@@ -666,6 +675,9 @@ fi
|
||||
if test x$support_frills = xyes; then
|
||||
AC_DEFINE(ENABLE_FRILLS, 1, Define if you want handling for rarely used but handy features)
|
||||
fi
|
||||
+if test x$support_sgrmouse = xyes; then
|
||||
+ AC_DEFINE(ENABLE_SGRMOUSE, 1, Define if you want support for SGR mouse mode 1006)
|
||||
+fi
|
||||
if test x$support_mousewheel = xyes; then
|
||||
AC_DEFINE(MOUSE_WHEEL, 1, Define to use wheel events (button4 and button5) to scroll)
|
||||
fi
|
||||
diff --git a/src/command.C b/src/command.C
|
||||
index 7b79f51..a62ef87 100644
|
||||
--- a/src/command.C
|
||||
+++ b/src/command.C
|
||||
@@ -1282,6 +1282,13 @@ rxvt_term::mouse_report (XButtonEvent &ev)
|
||||
int button_number, key_state = 0;
|
||||
int x, y;
|
||||
int code = 32;
|
||||
+ bool mode_sgr = false;
|
||||
+
|
||||
+#if ENABLE_SGRMOUSE
|
||||
+ if (priv_modes & PrivMode_ExtMouseSgr) mode_sgr = true;
|
||||
+#endif
|
||||
+
|
||||
+ if (mode_sgr) code = 0;
|
||||
|
||||
x = Pixel2Col (ev.x) + 1;
|
||||
y = Pixel2Row (ev.y) + 1;
|
||||
@@ -1296,11 +1303,18 @@ rxvt_term::mouse_report (XButtonEvent &ev)
|
||||
code += 32;
|
||||
}
|
||||
|
||||
- if (MEvent.button == AnyButton)
|
||||
+ if (!(mode_sgr) && MEvent.button == AnyButton)
|
||||
button_number = 3;
|
||||
else
|
||||
{
|
||||
- button_number = MEvent.button - Button1;
|
||||
+ if (ev.type == MotionNotify) {
|
||||
+ if (ev.state & Button1Mask) button_number = 0;
|
||||
+ else if (ev.state & Button2Mask) button_number = 1;
|
||||
+ else if (ev.state & Button3Mask) button_number = 2;
|
||||
+ else return;
|
||||
+ } else {
|
||||
+ button_number = ev.button - Button1;
|
||||
+ }
|
||||
/* add 0x3D for wheel events, like xterm does */
|
||||
if (button_number >= 3)
|
||||
button_number += 64 - 3;
|
||||
@@ -1361,6 +1375,15 @@ rxvt_term::mouse_report (XButtonEvent &ev)
|
||||
wint_t (32 + x),
|
||||
wint_t (32 + y));
|
||||
else
|
||||
+#endif
|
||||
+#if ENABLE_SGRMOUSE
|
||||
+ if (mode_sgr)
|
||||
+ tt_printf ("\033[<%d;%d;%d%c",
|
||||
+ code + button_number + key_state,
|
||||
+ x,
|
||||
+ y,
|
||||
+ (ev.type == ButtonRelease ? 'm' : 'M'));
|
||||
+ else
|
||||
#endif
|
||||
tt_printf ("\033[M%c%c%c",
|
||||
code + button_number + key_state,
|
||||
@@ -2904,7 +2927,7 @@ rxvt_term::process_csi_seq ()
|
||||
scr_soft_reset ();
|
||||
|
||||
static const int pm_h[] = { 7, 25 };
|
||||
- static const int pm_l[] = { 1, 3, 4, 5, 6, 9, 66, 1000, 1001, 1005, 1015, 1049 };
|
||||
+ static const int pm_l[] = { 1, 3, 4, 5, 6, 9, 66, 1000, 1001, 1002, 1003, 1005, 1006, 1015, 1049 };
|
||||
|
||||
process_terminal_mode ('h', 0, ecb_array_length (pm_h), pm_h);
|
||||
process_terminal_mode ('l', 0, ecb_array_length (pm_l), pm_l);
|
||||
@@ -3710,6 +3733,9 @@ rxvt_term::process_terminal_mode (int mode, int priv ecb_unused, unsigned int na
|
||||
{ 1003, PrivMode_MouseAnyEvent },
|
||||
#if ENABLE_FRILLS
|
||||
{ 1005, PrivMode_ExtModeMouse },
|
||||
+#endif
|
||||
+#if ENABLE_SGRMOUSE
|
||||
+ { 1006, PrivMode_ExtMouseSgr },
|
||||
#endif
|
||||
{ 1010, PrivMode_TtyOutputInh }, // rxvt extension
|
||||
{ 1011, PrivMode_Keypress }, // rxvt extension
|
||||
diff --git a/src/rxvt.h b/src/rxvt.h
|
||||
index 5c7cf66..2ffd3fb 100644
|
||||
--- a/src/rxvt.h
|
||||
+++ b/src/rxvt.h
|
||||
@@ -645,6 +645,7 @@ enum {
|
||||
#define PrivMode_ExtModeMouse (1UL<<23) // xterm pseudo-utf-8 hack
|
||||
#define PrivMode_ExtMouseRight (1UL<<24) // xterm pseudo-utf-8, but works in non-utf-8-locales
|
||||
#define PrivMode_BlinkingCursor (1UL<<25)
|
||||
+#define PrivMode_ExtMouseSgr (1UL<<27) // sgr mouse extension
|
||||
|
||||
#define PrivMode_mouse_report (PrivMode_MouseX10|PrivMode_MouseX11|PrivMode_MouseBtnEvent|PrivMode_MouseAnyEvent)
|
||||
|
||||
diff --git a/src/xdefaults.C b/src/xdefaults.C
|
||||
index 894aa8d..e5952b7 100644
|
||||
--- a/src/xdefaults.C
|
||||
+++ b/src/xdefaults.C
|
||||
@@ -359,6 +359,9 @@ static const char optionsstring[] = "options: "
|
||||
#if defined(ENABLE_FRILLS)
|
||||
"frills,"
|
||||
#endif
|
||||
+#if defined(ENABLE_SGRMOUSE)
|
||||
+ "sgrmouse,"
|
||||
+#endif
|
||||
#if defined(SELECTION_SCROLLING)
|
||||
"selectionscrolling,"
|
||||
#endif
|
Loading…
Reference in a new issue