|
|
secondary wheel support:
|
|
|
when using the mouse wheel, if you’re on secondary screen then no scrolling
|
|
|
will occur, and instead some (3, to be exact) “fake” keystrokes will be sent to
|
|
|
the running application.
|
|
|
|
|
|
patch by jacky
|
|
|
i.am.jack.mail@gmail.com
|
|
|
http://lists.schmorp.de/pipermail/rxvt-unicode/2011q4/001491.html
|
|
|
|
|
|
diff -r d5f9ea7306c4 -r cca1997c1a85 doc/rxvt.1.pod
|
|
|
--- a/doc/rxvt.1.pod Wed Dec 21 22:59:04 2011 +0100
|
|
|
+++ b/doc/rxvt.1.pod Wed Dec 21 23:01:28 2011 +0100
|
|
|
@@ -455,6 +455,11 @@
|
|
|
Turn on/off secondary screen scroll (default enabled); resource
|
|
|
B<secondaryScroll>.
|
|
|
|
|
|
+=item B<-ssw>|B<+ssw>
|
|
|
+
|
|
|
+Turn on/off secondary screen wheel support (default disabled); resource
|
|
|
+B<secondaryWheel>.
|
|
|
+
|
|
|
=item B<-hold>|B<+hold>
|
|
|
|
|
|
Turn on/off hold window after exit support. If enabled, @@RXVT_NAME@@
|
|
|
@@ -1167,6 +1172,13 @@
|
|
|
scrollback buffer and, when secondaryScreen is off, switching
|
|
|
to/from the secondary screen will instead scroll the screen up.
|
|
|
|
|
|
+=item B<secondaryWheel:> I<boolean>
|
|
|
+
|
|
|
+Turn on/off secondary wheel (default disabled). If enabled, when on
|
|
|
+secondary screen, using the mouse wheel will not scroll in the buffer
|
|
|
+but instead send 3 "fake" keystrokes (Up/Down arrow) to the running
|
|
|
+application (allows e.g. natural scrolling in B<man>, B<less>, etc).
|
|
|
+
|
|
|
=item B<hold>: I<boolean>
|
|
|
|
|
|
Turn on/off hold window after exit support. If enabled, @@RXVT_NAME@@
|
|
|
diff -r d5f9ea7306c4 -r cca1997c1a85 src/command.C
|
|
|
--- a/src/command.C Wed Dec 21 22:59:04 2011 +0100
|
|
|
+++ b/src/command.C Wed Dec 21 23:01:28 2011 +0100
|
|
|
@@ -2197,10 +2197,46 @@
|
|
|
}
|
|
|
else
|
|
|
# endif
|
|
|
+#ifndef NO_SECONDARY_SCREEN
|
|
|
{
|
|
|
- scr_page (dirn, lines);
|
|
|
- scrollBar.show (1);
|
|
|
+ /* on SECONDARY screen, we send "fake" UP/DOWN keys instead
|
|
|
+ * (this allows to scroll within man, less, etc) */
|
|
|
+ if (option (Opt_secondaryWheel) && current_screen != PRIMARY)
|
|
|
+ {
|
|
|
+ XKeyEvent event;
|
|
|
+ event.display = ev.display;
|
|
|
+ event.window = ev.window;
|
|
|
+ event.root = ev.root;
|
|
|
+ event.subwindow = ev.subwindow;
|
|
|
+ event.time = ev.time;
|
|
|
+ event.x = ev.x;
|
|
|
+ event.y = ev.y;
|
|
|
+ event.x_root = ev.x_root;
|
|
|
+ event.y_root = ev.y_root;
|
|
|
+ event.same_screen = ev.same_screen;
|
|
|
+ event.state = 0;
|
|
|
+ event.keycode = XKeysymToKeycode(ev.display,
|
|
|
+ (dirn == UP) ? XK_Up : XK_Down);
|
|
|
+ for (lines = 0; lines < 3; ++lines)
|
|
|
+ {
|
|
|
+ event.type = KeyPress;
|
|
|
+ XSendEvent (event.display, event.window, True,
|
|
|
+ KeyPressMask, (XEvent *) &event);
|
|
|
+ event.type = KeyRelease;
|
|
|
+ XSendEvent (event.display, event.window, True,
|
|
|
+ KeyPressMask, (XEvent *) &event);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /* on PRIMARY screen, we scroll in the buffer */
|
|
|
+ else
|
|
|
+#endif
|
|
|
+ {
|
|
|
+ scr_page (dirn, lines);
|
|
|
+ scrollBar.show (1);
|
|
|
+ }
|
|
|
+#ifndef NO_SECONDARY_SCREEN
|
|
|
}
|
|
|
+#endif
|
|
|
}
|
|
|
break;
|
|
|
#endif
|
|
|
diff -r d5f9ea7306c4 -r cca1997c1a85 src/optinc.h
|
|
|
--- a/src/optinc.h Wed Dec 21 22:59:04 2011 +0100
|
|
|
+++ b/src/optinc.h Wed Dec 21 23:01:28 2011 +0100
|
|
|
@@ -26,6 +26,7 @@
|
|
|
def(cursorBlink)
|
|
|
def(secondaryScreen)
|
|
|
def(secondaryScroll)
|
|
|
+ def(secondaryWheel)
|
|
|
def(pastableTabs)
|
|
|
def(cursorUnderline)
|
|
|
#if ENABLE_FRILLS
|
|
|
diff -r d5f9ea7306c4 -r cca1997c1a85 src/rsinc.h
|
|
|
--- a/src/rsinc.h Wed Dec 21 22:59:04 2011 +0100
|
|
|
+++ b/src/rsinc.h Wed Dec 21 23:01:28 2011 +0100
|
|
|
@@ -102,6 +102,7 @@
|
|
|
#ifndef NO_SECONDARY_SCREEN
|
|
|
def (secondaryScreen)
|
|
|
def (secondaryScroll)
|
|
|
+ def (secondaryWheel)
|
|
|
#endif
|
|
|
#ifdef OFF_FOCUS_FADING
|
|
|
def (fade)
|
|
|
diff -r d5f9ea7306c4 -r cca1997c1a85 src/xdefaults.C
|
|
|
--- a/src/xdefaults.C Wed Dec 21 22:59:04 2011 +0100
|
|
|
+++ b/src/xdefaults.C Wed Dec 21 23:01:28 2011 +0100
|
|
|
@@ -261,6 +261,7 @@
|
|
|
#ifndef NO_SECONDARY_SCREEN
|
|
|
BOOL (Rs_secondaryScreen, "secondaryScreen", "ssc", Opt_secondaryScreen, 0, "enable secondary screen"),
|
|
|
BOOL (Rs_secondaryScroll, "secondaryScroll", "ssr", Opt_secondaryScroll, 0, "enable secondary screen scroll"),
|
|
|
+ BOOL (Rs_secondaryWheel, "secondaryWheel", "ssw", Opt_secondaryWheel, 0, "enable secondary screen wheel"),
|
|
|
#endif
|
|
|
#if ENABLE_PERL
|
|
|
RSTRG (Rs_perl_lib, "perl-lib", "string"), //, "colon-separated directories with extension scripts"),TODO
|