my $prev_sender = {};
sub separate_messages {
- my ($tag, $sender, $target) = @_;
- if(exists $prev_sender->{$tag}{$target} && $sender ne $prev_sender->{$tag}{$target}) {
- $_[0]->window_item_find($target)->window->print("") if Irssi::settings_get_bool('separate_user_messages');
+ my ($tag, $sender, $target, $mode) = @_;
+ my $server = Irssi::server_find_tag($tag);
+ my $windowname = $mode ? $target : $sender;
+
+ if(exists $prev_sender->{$tag}{$windowname} && $sender ne $prev_sender->{$tag}{$windowname}) {
+ $server->window_item_find($windowname)->print("") if Irssi::settings_get_bool('separate_user_messages');
}
- $prev_sender->{$tag}{$target} = $sender;
+ $prev_sender->{$tag}{$windowname} = $sender;
}
sub sig_message {
- separate_messages(lc $_[0]->{tag}, lc $_[2], lc $_[4]);
+ separate_messages(lc $_[0]->{tag}, lc $_[2], lc $_[4], 0);
}
sub sig_message_own {
- separate_messages(lc $_[0]->{tag}, lc $_[0]->{nick}, lc $_[2]);
+ separate_messages(lc $_[0]->{tag}, lc $_[0]->{nick}, lc $_[2], 0);
+}
+
+sub sig_message_own_special {
+ separate_messages(lc $_[0]->{tag}, lc $_[0]->{nick}, lc $_[2], 1);
}
Irssi::settings_add_bool('lookandfeel', 'separate_user_messages', 0);
Irssi::signal_add_first('message public', 'sig_message');
Irssi::signal_add_first('message private', 'sig_message');
Irssi::signal_add_first('message own_public', 'sig_message_own');
-Irssi::signal_add_first('message own_private', 'sig_message_own');
+Irssi::signal_add_first('message own_private', 'sig_message_own_special');