From: Ailin Nemui Date: Wed, 8 May 2019 12:34:05 +0000 (+0200) Subject: [trackbar] update to 2.8 X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=19b3155f5ac105ebab631f33f1ff7c907305b25c;p=irssi-scripts.irssi.org.git [trackbar] update to 2.8 - fix /^join bug --- diff --git a/scripts/trackbar.pl b/scripts/trackbar.pl index 7e5b19b..0e71434 100644 --- a/scripts/trackbar.pl +++ b/scripts/trackbar.pl @@ -102,7 +102,7 @@ use strict; use warnings; use vars qw($VERSION %IRSSI); -$VERSION = "2.6"; # c99d17e529ad9ce +$VERSION = "2.8"; # 89f27cc2c12368e %IRSSI = ( authors => "Peter 'kinlo' Leurs, Uwe Dudenhoeffer, " . @@ -172,6 +172,7 @@ $VERSION = "2.6"; # c99d17e529ad9ce ## Version history: # +# 2.8: - fix /^join bug # 2.7: - add /set trackbar_all_manual option # 2.5: - merge back on scripts.irssi.org # - fix /trackbar redraw broken in 2.4 @@ -295,10 +296,22 @@ sub remove_one_trackbar { } } -sub add_one_trackbar { +sub add_one_trackbar_pt1 { my $win = shift; my $view = shift || $win->view; + + my $last_cur_line = $view->{buffer}{cur_line}{_irssi}; $win->print(line($win->{width}), MSGLEVEL_NEVER); + + my $cur_line = $win->view->{buffer}{cur_line}{_irssi}; # get a fresh buffer + + $last_cur_line ne $cur_line # printing was successful +} + +sub add_one_trackbar_pt2 { + my $win = shift; + my $view = $win->view; + $view->set_bookmark_bottom('trackbar'); $unseen_trackbar{ $win->{_irssi} } = 1; Irssi::signal_emit("window trackbar added", $win); @@ -310,10 +323,16 @@ sub update_one_trackbar { my $view = shift || $win->view; my $force = shift; my $ignored = win_ignored($win, $view); - remove_one_trackbar($win, $view) - if $force || !defined $force || !$ignored; - add_one_trackbar($win, $view) + my $success; + + $success = add_one_trackbar_pt1($win, $view) ? 1 : 0 if $force || !$ignored; + + remove_one_trackbar($win, $view) + if ( $success || !defined $success ) && ( $force || !defined $force || !$ignored ); + + add_one_trackbar_pt2($win) + if $success; } sub win_ignored {