aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dillorc4
-rw-r--r--src/prefs.c1
-rw-r--r--src/prefs.h1
-rw-r--r--src/prefsparser.cc1
-rw-r--r--src/uicmd.cc3
5 files changed, 9 insertions, 1 deletions
diff --git a/dillorc b/dillorc
index fccb7932..56dc9ec5 100644
--- a/dillorc
+++ b/dillorc
@@ -228,6 +228,10 @@
# If you prefer to open a new Window instead, set it to NO.
#middle_click_opens_new_tab=YES
+# A mouse's middle click over a tab closes the Tab.
+# With mousewheel mouses, right click feels way better (set to YES).
+#right_click_closes_tab=NO
+
# Mouse middle click by default drives drag-scrolling.
# To paste an URL into the window instead of scrolling, set it to NO.
# Note: You could always paste the URL onto the URL box clear button.
diff --git a/src/prefs.c b/src/prefs.c
index f968710a..be0882bd 100644
--- a/src/prefs.c
+++ b/src/prefs.c
@@ -70,6 +70,7 @@ void a_Prefs_init(void)
prefs.load_stylesheets=TRUE;
prefs.middle_click_drags_page = TRUE;
prefs.middle_click_opens_new_tab = TRUE;
+ prefs.right_click_closes_tab = 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 4009925c..4debee89 100644
--- a/src/prefs.h
+++ b/src/prefs.h
@@ -84,6 +84,7 @@ struct _DilloPrefs {
char *font_monospace;
bool_t enterpress_forces_submit;
bool_t middle_click_opens_new_tab;
+ bool_t right_click_closes_tab;
char *search_url;
char *save_dir;
bool_t show_msg;
diff --git a/src/prefsparser.cc b/src/prefsparser.cc
index 95f98c16..7d0582cd 100644
--- a/src/prefsparser.cc
+++ b/src/prefsparser.cc
@@ -81,6 +81,7 @@ int PrefsParser::parseOption(char *name, char *value)
PREFS_BOOL },
{ "middle_click_opens_new_tab", &prefs.middle_click_opens_new_tab,
PREFS_BOOL },
+ { "right_click_closes_tab", &prefs.right_click_closes_tab, PREFS_BOOL },
{ "no_proxy", &prefs.no_proxy, PREFS_STRING },
{ "panel_size", &prefs.panel_size, PREFS_PANEL_SIZE },
{ "parse_embedded_css", &prefs.parse_embedded_css, PREFS_BOOL },
diff --git a/src/uicmd.cc b/src/uicmd.cc
index c12b7e9d..fd6067e6 100644
--- a/src/uicmd.cc
+++ b/src/uicmd.cc
@@ -125,7 +125,8 @@ static void tab_btn_cb (Fl_Widget *w, void *cb_data)
if (b == FL_LEFT_MOUSE) {
tabs->switch_tab(btn);
- } else if (b == FL_RIGHT_MOUSE) {
+ } else if ((b == FL_RIGHT_MOUSE && prefs.right_click_closes_tab) ||
+ (b == FL_MIDDLE_MOUSE && !prefs.right_click_closes_tab)) {
// TODO: just an example, not necessarily final
a_UIcmd_close_bw(a_UIcmd_get_bw_by_widget(btn->ui()));
}