Added special windowlist keyword @QUERIES to match all query windows, so
that you can either promote queries to a different filter level by
window name, or altogether.

Signed-off-by: martin f. krafft <[email protected]>
Cc: [email protected]
---
 chanact.pl |   19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/chanact.pl b/chanact.pl
index d5fbc9e..cecd635 100644
--- a/chanact.pl
+++ b/chanact.pl
@@ -165,6 +165,7 @@ $VERSION = "0.5.11";
 #              * <string> : space-separated list of windows for which to use
 #                              chanact_filter_windowlist_level instead of
 #                              chanact_filter.
+#                              The special string @QUERIES matches all queries.
 #
 # /set chanact_filter_windowlist_level <int>
 #   like chanact_filter for windows in chanact_filter_windowlist. Defaults to
@@ -246,10 +247,19 @@ sub remake() {
                !ref($active) && next;
 
                my $name = $win->get_active_name;
+               my $type = $active->{type};
+
+               # determine whether we have a match with the windowlist
+               my @windowlist = split ' ', $windowlist;
+               my $match_windowlist = grep { $_ eq $name } @windowlist;
+               if ($type eq 'QUERY') {
+                       # if this is a query, also try to match @QUERIES
+                       $match_windowlist ||= grep { $_ eq '@QUERIES' } 
@windowlist;
+               }
 
                my $filter_level = Irssi::settings_get_int('chanact_filter');
-               if (grep { $_ eq $name } split ' ', $windowlist) {
-                       # window matches $windowlist, so use
+               if ($match_windowlist) {
+                       # window matches windowlist so use
                        # chanact_filter_windowlist_level to override
                        # chanact_filter
                        $filter_level = 
Irssi::settings_get_int('chanact_filter_windowlist_level');
@@ -267,7 +277,7 @@ sub remake() {
 
                # check if we should show the mode
                $mode = "";
-               if ($active->{type} eq "CHANNEL") {
+               if ($type eq "CHANNEL") {
                        my $server = $win->{active_server};
                        !ref($server) && next;
 
@@ -492,7 +502,8 @@ Irssi::signal_add_last('window refnum changed', 
'refnum_changed');
 # 0.5.11
 #      - added chanact_filter_windowlist, which is a space-separated list of
 #        windows for which to use chanact_filter_windowlist_level instead of
-#        chanact_filter ([email protected]).
+#        chanact_filter. You can use @QUERIES to match all queries
+#        ([email protected]).
 #
 # 0.5.10
 #      - fixed irssi crash when using Irssi::print from within remake()
-- 
1.6.0.1




-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to