aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/prefs.c1
-rw-r--r--src/prefs.h1
-rw-r--r--src/prefsparser.cc1
-rw-r--r--src/uicmd.cc3
4 files changed, 6 insertions, 0 deletions
diff --git a/src/prefs.c b/src/prefs.c
index 26c86a4d..8cac23a9 100644
--- a/src/prefs.c
+++ b/src/prefs.c
@@ -79,6 +79,7 @@ void a_Prefs_init(void)
prefs.middle_click_opens_new_tab = TRUE;
prefs.right_click_closes_tab = TRUE;
prefs.scroll_switches_tabs = TRUE;
+ prefs.scroll_switches_tabs_reverse = FALSE;
prefs.no_proxy = dStrdup(PREFS_NO_PROXY);
prefs.panel_size = P_medium;
prefs.parse_embedded_css=TRUE;
diff --git a/src/prefs.h b/src/prefs.h
index 4eddeb5f..0073d52a 100644
--- a/src/prefs.h
+++ b/src/prefs.h
@@ -107,6 +107,7 @@ typedef struct {
bool_t middle_click_opens_new_tab;
bool_t right_click_closes_tab;
bool_t scroll_switches_tabs;
+ bool_t scroll_switches_tabs_reverse;
bool_t search_url_idx;
Dlist *search_urls;
char *save_dir;
diff --git a/src/prefsparser.cc b/src/prefsparser.cc
index 83131d58..dbb82cb8 100644
--- a/src/prefsparser.cc
+++ b/src/prefsparser.cc
@@ -192,6 +192,7 @@ void PrefsParser::parse(FILE *fp)
PREFS_BOOL, 0 },
{ "right_click_closes_tab", &prefs.right_click_closes_tab, PREFS_BOOL, 0 },
{ "scroll_switches_tabs", &prefs.scroll_switches_tabs, PREFS_BOOL, 0 },
+ { "scroll_switches_tabs_reverse", &prefs.scroll_switches_tabs_reverse, PREFS_BOOL, 0 },
{ "no_proxy", &prefs.no_proxy, PREFS_STRING, 0 },
{ "panel_size", &prefs.panel_size, PREFS_PANEL_SIZE, 0 },
{ "parse_embedded_css", &prefs.parse_embedded_css, PREFS_BOOL, 0 },
diff --git a/src/uicmd.cc b/src/uicmd.cc
index 02d2a141..88bc9b7d 100644
--- a/src/uicmd.cc
+++ b/src/uicmd.cc
@@ -254,6 +254,9 @@ int CustTabs::handle(int e)
int dy = Fl::event_dy();
int dir = dy ? dy : dx;
+ if (prefs.scroll_switches_tabs_reverse)
+ dir = -dir;
+
if (dir > 0)
next_tab();
else if (dir < 0)