summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorSébastien Helleu <flashcode@flashtux.org>2019-02-23 11:17:02 +0100
committerSébastien Helleu <flashcode@flashtux.org>2019-02-23 11:17:02 +0100
commit7b79fbbd09edfeeaf106937437205800aeecee08 (patch)
tree049d56d8d392117261fa64ee115cbc9201bf13b3 /src/gui
parentbdc905df168ef22e2ecaf1914481182c95ad63c6 (diff)
parent8ac4a75969ede80c9d3c9900f376c7d6deb71b07 (diff)
downloadweechat-7b79fbbd09edfeeaf106937437205800aeecee08.zip
Merge remote-tracking branch 'origin/pr/1311'
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/gui-filter.c17
-rw-r--r--src/gui/gui-filter.h2
2 files changed, 14 insertions, 5 deletions
diff --git a/src/gui/gui-filter.c b/src/gui/gui-filter.c
index b839744a6..325c851ff 100644
--- a/src/gui/gui-filter.c
+++ b/src/gui/gui-filter.c
@@ -186,17 +186,26 @@ gui_filter_buffer (struct t_gui_buffer *buffer,
/*
* Filters all buffers, using message filters.
+ *
+ * If filter is NULL, filters all buffers.
+ * If filter is not NULL, filters only buffers matched by this filter.
*/
void
-gui_filter_all_buffers ()
+gui_filter_all_buffers (struct t_gui_filter *filter)
{
struct t_gui_buffer *ptr_buffer;
for (ptr_buffer = gui_buffers; ptr_buffer;
ptr_buffer = ptr_buffer->next_buffer)
{
- gui_filter_buffer (ptr_buffer, NULL);
+ if (!filter
+ || gui_buffer_match_list_split (ptr_buffer,
+ filter->num_buffers,
+ filter->buffers))
+ {
+ gui_filter_buffer (ptr_buffer, NULL);
+ }
}
}
@@ -210,7 +219,7 @@ gui_filter_global_enable ()
if (!gui_filters_enabled)
{
gui_filters_enabled = 1;
- gui_filter_all_buffers ();
+ gui_filter_all_buffers (NULL);
(void) hook_signal_send ("filters_enabled",
WEECHAT_HOOK_SIGNAL_STRING, NULL);
}
@@ -226,7 +235,7 @@ gui_filter_global_disable ()
if (gui_filters_enabled)
{
gui_filters_enabled = 0;
- gui_filter_all_buffers ();
+ gui_filter_all_buffers (NULL);
(void) hook_signal_send ("filters_disabled",
WEECHAT_HOOK_SIGNAL_STRING, NULL);
}
diff --git a/src/gui/gui-filter.h b/src/gui/gui-filter.h
index ee2888211..e426262f5 100644
--- a/src/gui/gui-filter.h
+++ b/src/gui/gui-filter.h
@@ -56,7 +56,7 @@ extern int gui_filters_enabled;
extern int gui_filter_check_line (struct t_gui_line_data *line_data);
extern void gui_filter_buffer (struct t_gui_buffer *buffer,
struct t_gui_line_data *line_data);
-extern void gui_filter_all_buffers ();
+extern void gui_filter_all_buffers (struct t_gui_filter *filter);
extern void gui_filter_global_enable ();
extern void gui_filter_global_disable ();
extern struct t_gui_filter *gui_filter_search_by_name (const char *name);