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, 5 insertions, 1 deletions
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()));
}