… | |
… | |
2653 | can_events => 1, |
2653 | can_events => 1, |
2654 | @_ |
2654 | @_ |
2655 | ); |
2655 | ); |
2656 | } |
2656 | } |
2657 | |
2657 | |
|
|
2658 | sub invoke_button_down { |
|
|
2659 | my ($self, $ev, $x, $y) = @_; |
|
|
2660 | |
|
|
2661 | 1 |
|
|
2662 | } |
|
|
2663 | |
2658 | sub invoke_button_up { |
2664 | sub invoke_button_up { |
2659 | my ($self, $ev, $x, $y) = @_; |
2665 | my ($self, $ev, $x, $y) = @_; |
2660 | |
2666 | |
2661 | $self->emit ("activate") |
2667 | $self->emit ("activate") |
2662 | if $x >= 0 && $x < $self->{w} |
2668 | if $x >= 0 && $x < $self->{w} |
… | |
… | |
3549 | $widget->{animspeed} = List::Util::max 0.05, $widget->{animspeed}; |
3555 | $widget->{animspeed} = List::Util::max 0.05, $widget->{animspeed}; |
3550 | $widget->{anim_start} = $self->{animspeed} * int Event::time / $self->{animspeed}; |
3556 | $widget->{anim_start} = $self->{animspeed} * int Event::time / $self->{animspeed}; |
3551 | $self->{timer} = Event->timer ( |
3557 | $self->{timer} = Event->timer ( |
3552 | parked => 1, |
3558 | parked => 1, |
3553 | cb => sub { |
3559 | cb => sub { |
3554 | return unless $::CONN && $widget; |
3560 | return unless $::CONN; |
3555 | |
3561 | |
|
|
3562 | my $w = $widget |
|
|
3563 | or return; |
|
|
3564 | |
3556 | ++$widget->{frame}; |
3565 | ++$w->{frame}; |
3557 | $widget->update_face; |
3566 | $w->update_face; |
|
|
3567 | |
|
|
3568 | # somehow, $widget can go away |
3558 | $widget->update; |
3569 | $w->update; |
3559 | |
|
|
3560 | $widget->update_timer; |
3570 | $w->update_timer; |
3561 | }, |
3571 | }, |
3562 | ); |
3572 | ); |
3563 | |
3573 | |
3564 | $self->update_face; |
3574 | $self->update_face; |
3565 | $self->update_timer; |
3575 | $self->update_timer; |