use warnings;
use vars qw($VERSION %IRSSI);
-$VERSION = "2.6"; # c99d17e529ad9ce
+$VERSION = "2.8"; # 89f27cc2c12368e
%IRSSI = (
authors => "Peter 'kinlo' Leurs, Uwe Dudenhoeffer, " .
## 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
}
}
-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);
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 {