… | |
… | |
198 | } |
198 | } |
199 | |
199 | |
200 | sub set_end { |
200 | sub set_end { |
201 | my ($self) = @_; |
201 | my ($self) = @_; |
202 | |
202 | |
203 | # this is probably also a hack... |
203 | # we do it both. the first scroll avoids flickering, |
|
|
204 | # the second ensures that we scroll -- gtk+ often ignores |
|
|
205 | # the first scroll_to_mark ... |
|
|
206 | $self->{view}->scroll_to_mark ($self->{end}, 0, 0, 0, 0); |
204 | $self->{idle} ||= add Glib::Idle sub { |
207 | $self->{idle} ||= add Glib::Idle sub { |
205 | $self->{view}->scroll_to_iter ($self->{buffer}->get_end_iter, 0, 0, 0, 0) |
208 | $self->{view}->scroll_to_mark ($self->{end}, 0, 0, 0, 0); |
206 | if $self->{view}; |
|
|
207 | delete $self->{idle}; |
209 | delete $self->{idle}; |
|
|
210 | 0; |
208 | }; |
211 | }; |
209 | } |
212 | } |
210 | |
213 | |
211 | sub at_end { |
214 | sub at_end { |
212 | my ($self) = @_; |
215 | my ($self) = @_; |