… | |
… | |
539 | return unless $self->{h} && $self->{w}; |
539 | return unless $self->{h} && $self->{w}; |
540 | |
540 | |
541 | # update screen rectangle |
541 | # update screen rectangle |
542 | local $draw_x = $draw_x + $self->{x}; |
542 | local $draw_x = $draw_x + $self->{x}; |
543 | local $draw_y = $draw_y + $self->{y}; |
543 | local $draw_y = $draw_y + $self->{y}; |
544 | local $draw_w = $draw_x + $self->{w}; |
|
|
545 | local $draw_h = $draw_y + $self->{h}; |
|
|
546 | |
544 | |
547 | # skip widgets that are entirely outside the drawing area |
545 | # skip widgets that are entirely outside the drawing area |
548 | return if ($draw_x + $self->{w} < 0) || ($draw_x >= $draw_w) |
546 | return if ($draw_x + $self->{w} < 0) || ($draw_x >= $draw_w) |
549 | || ($draw_y + $self->{h} < 0) || ($draw_y >= $draw_h); |
547 | || ($draw_y + $self->{h} < 0) || ($draw_y >= $draw_h); |
550 | |
548 | |
… | |
… | |
2575 | |
2573 | |
2576 | $self->{fontsize} = $fontsize; |
2574 | $self->{fontsize} = $fontsize; |
2577 | $self->reflow; |
2575 | $self->reflow; |
2578 | } |
2576 | } |
2579 | |
2577 | |
2580 | sub visible_children { |
2578 | sub size_request { |
2581 | my ($self) = @_; |
2579 | my ($self) = @_; |
2582 | |
2580 | |
2583 | @{$self->{children}}[0,1] |
2581 | my ($empty, $slider) = @{ $self->{children} }; |
|
|
2582 | |
|
|
2583 | local $self->{children} = [$empty, $slider]; |
|
|
2584 | $self->SUPER::size_request |
2584 | } |
2585 | } |
2585 | |
2586 | |
2586 | sub invoke_size_allocate { |
2587 | sub invoke_size_allocate { |
2587 | my ($self, $w, $h) = @_; |
2588 | my ($self, $w, $h) = @_; |
2588 | |
2589 | |
… | |
… | |
2594 | $self->{layout}->set_width ($empty->{w}); |
2595 | $self->{layout}->set_width ($empty->{w}); |
2595 | $self->{layout}->set_indent ($self->{fontsize} * $::FONTSIZE * $self->{indent}); |
2596 | $self->{layout}->set_indent ($self->{fontsize} * $::FONTSIZE * $self->{indent}); |
2596 | |
2597 | |
2597 | $self->reflow; |
2598 | $self->reflow; |
2598 | |
2599 | |
|
|
2600 | local $self->{children} = [$empty, $slider]; |
2599 | $self->SUPER::invoke_size_allocate ($w, $h) |
2601 | $self->SUPER::invoke_size_allocate ($w, $h) |
2600 | } |
2602 | } |
2601 | |
2603 | |
2602 | sub get_layout { |
2604 | sub get_layout { |
2603 | my ($self, $para) = @_; |
2605 | my ($self, $para) = @_; |