summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/wee-config.c14
-rw-r--r--src/core/wee-config.h2
-rw-r--r--src/gui/curses/gui-curses-window.c12
3 files changed, 26 insertions, 2 deletions
diff --git a/src/core/wee-config.c b/src/core/wee-config.c
index 8c32f0008..d265fba8d 100644
--- a/src/core/wee-config.c
+++ b/src/core/wee-config.c
@@ -135,6 +135,7 @@ struct t_config_option *config_look_hotlist_short_names;
struct t_config_option *config_look_hotlist_sort;
struct t_config_option *config_look_hotlist_suffix;
struct t_config_option *config_look_hotlist_unique_numbers;
+struct t_config_option *config_look_hotlist_update_on_buffer_switch;
struct t_config_option *config_look_input_cursor_scroll;
struct t_config_option *config_look_input_share;
struct t_config_option *config_look_input_share_overwrite;
@@ -180,6 +181,7 @@ struct t_config_option *config_look_quote_time_format;
struct t_config_option *config_look_read_marker;
struct t_config_option *config_look_read_marker_always_show;
struct t_config_option *config_look_read_marker_string;
+struct t_config_option *config_look_read_marker_update_on_buffer_switch;
struct t_config_option *config_look_save_config_on_exit;
struct t_config_option *config_look_save_config_with_fsync;
struct t_config_option *config_look_save_layout_on_exit;
@@ -3099,6 +3101,12 @@ config_weechat_init_options ()
NULL, NULL, NULL,
&config_change_buffer_content, NULL, NULL,
NULL, NULL, NULL);
+ config_look_hotlist_update_on_buffer_switch = config_file_new_option (
+ weechat_config_file, ptr_section,
+ "hotlist_update_on_buffer_switch", "boolean",
+ N_("update the hotlist when switching buffers"),
+ NULL, 0, 0, "on", NULL, 0,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
config_look_input_cursor_scroll = config_file_new_option (
weechat_config_file, ptr_section,
"input_cursor_scroll", "integer",
@@ -3524,6 +3532,12 @@ config_weechat_init_options ()
NULL, NULL, NULL,
&config_change_read_marker, NULL, NULL,
NULL, NULL, NULL);
+ config_look_read_marker_update_on_buffer_switch = config_file_new_option (
+ weechat_config_file, ptr_section,
+ "read_marker_update_on_buffer_switch", "boolean",
+ N_("update the read marker when switching buffers"),
+ NULL, 0, 0, "on", NULL, 0,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
config_look_save_config_on_exit = config_file_new_option (
weechat_config_file, ptr_section,
"save_config_on_exit", "boolean",
diff --git a/src/core/wee-config.h b/src/core/wee-config.h
index 0467cacc4..ba4068ee7 100644
--- a/src/core/wee-config.h
+++ b/src/core/wee-config.h
@@ -188,6 +188,7 @@ extern struct t_config_option *config_look_hotlist_short_names;
extern struct t_config_option *config_look_hotlist_sort;
extern struct t_config_option *config_look_hotlist_suffix;
extern struct t_config_option *config_look_hotlist_unique_numbers;
+extern struct t_config_option *config_look_hotlist_update_on_buffer_switch;
extern struct t_config_option *config_look_input_cursor_scroll;
extern struct t_config_option *config_look_input_share;
extern struct t_config_option *config_look_input_share_overwrite;
@@ -233,6 +234,7 @@ extern struct t_config_option *config_look_quote_time_format;
extern struct t_config_option *config_look_read_marker;
extern struct t_config_option *config_look_read_marker_always_show;
extern struct t_config_option *config_look_read_marker_string;
+extern struct t_config_option *config_look_read_marker_update_on_buffer_switch;
extern struct t_config_option *config_look_save_config_on_exit;
extern struct t_config_option *config_look_save_config_with_fsync;
extern struct t_config_option *config_look_save_layout_on_exit;
diff --git a/src/gui/curses/gui-curses-window.c b/src/gui/curses/gui-curses-window.c
index 58f4ba241..6f90c0eee 100644
--- a/src/gui/curses/gui-curses-window.c
+++ b/src/gui/curses/gui-curses-window.c
@@ -1235,13 +1235,17 @@ gui_window_switch_to_buffer (struct t_gui_window *window,
gui_buffer_visited_add (window->buffer);
gui_buffer_visited_add (buffer);
}
- if (set_last_read)
+ if (set_last_read
+ && CONFIG_BOOLEAN(config_look_read_marker_update_on_buffer_switch))
{
if (window->buffer->num_displayed == 0)
{
window->buffer->lines->last_read_line = window->buffer->lines->last_line;
window->buffer->lines->first_line_not_read = 0;
}
+ }
+ if (set_last_read)
+ {
/*
* if there is no line displayed after last read line,
* then remove the read marker
@@ -1260,8 +1264,12 @@ gui_window_switch_to_buffer (struct t_gui_window *window,
gui_buffer_set_active_buffer (buffer);
gui_buffer_compute_num_displayed ();
- if (!weechat_upgrading && (old_buffer != buffer))
+ if (!weechat_upgrading
+ && (old_buffer != buffer)
+ && CONFIG_BOOLEAN(config_look_hotlist_update_on_buffer_switch))
+ {
gui_hotlist_remove_buffer (buffer, 0);
+ }
/* remove unused bars and add missing bars in window */
gui_bar_window_remove_unused_bars (window);