… | |
… | |
457 | $a->{_face} = $face->{idx}; |
457 | $a->{_face} = $face->{idx}; |
458 | |
458 | |
459 | if ($face->{w} > 1 || $face->{h} > 1) { |
459 | if ($face->{w} > 1 || $face->{h} > 1) { |
460 | # bigfaces |
460 | # bigfaces |
461 | |
461 | |
|
|
462 | $x2 = max $x2, $x + $face->{w} - 1; |
|
|
463 | $y2 = max $y2, $y + $face->{h} - 1; |
|
|
464 | |
462 | for my $ox (0 .. $face->{w} - 1) { |
465 | for my $ox (0 .. $face->{w} - 1) { |
463 | for my $oy (0 .. $face->{h} - 1) { |
466 | for my $oy (0 .. $face->{h} - 1) { |
464 | next unless $x || $oy; |
467 | next unless $ox || $oy; |
|
|
468 | |
465 | push @{ $a->{_more} }, [$x+$ox, $y+$oy]; |
469 | push @{ $a->{_more} }, [$x+$ox, $y+$oy]; |
466 | push @{ $data->[$x+$ox][$y+$oy] }, { |
470 | push @{ $data->[$x+$ox][$y+$oy] }, { |
467 | _virtual => $a, |
471 | _virtual => $a, |
468 | _virtual_x => $x, |
472 | _virtual_x => $x, |
469 | _virtual_y => $y, |
473 | _virtual_y => $y, |
… | |
… | |
495 | |
499 | |
496 | $data->[$x][$y] = $as; |
500 | $data->[$x][$y] = $as; |
497 | |
501 | |
498 | $self->queue_draw_area ( |
502 | $self->queue_draw_area ( |
499 | $x1 * TILESIZE - $self->{x}, $y1 * TILESIZE - $self->{y}, |
503 | $x1 * TILESIZE - $self->{x}, $y1 * TILESIZE - $self->{y}, |
500 | ($x2 - $x1 + 1) * TILESIZE , ($y2 - $y1 + 1) * TILESIZE , |
504 | ($x2 - $x1 + 1) * TILESIZE, ($y2 - $y1 + 1) * TILESIZE, |
501 | ); |
505 | ); |
502 | |
506 | |
503 | delete $self->{tipinfo}; $self->update_tooltip; |
507 | delete $self->{tipinfo}; $self->update_tooltip; |
504 | |
508 | |
505 | } |
509 | } |