diff options
Diffstat (limited to 'perl-install/mygtk2.pm')
-rw-r--r-- | perl-install/mygtk2.pm | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/perl-install/mygtk2.pm b/perl-install/mygtk2.pm index a8d0a10c9..73f223f0e 100644 --- a/perl-install/mygtk2.pm +++ b/perl-install/mygtk2.pm @@ -345,7 +345,6 @@ sub _gtk__Image { my ($width, $height) = ($pixbuf->get_width, $pixbuf->get_height); $w->set_size_request($width, $height); $w->{pixbuf} = $pixbuf; - my $not_my_first_event; $w->signal_connect(expose_event => sub { my (undef, $event) = @_; if (!$w->{x}) { @@ -353,17 +352,17 @@ sub _gtk__Image { $w->{x} = $alloc->x; $w->{y} = $alloc->y; } + # workaround Gtk+ bug: in installer, first event is not complete and rectables are bogus: + if ($::isInstall) { + $pixbuf->render_to_drawable($w->window, $w->style->fg_gc('normal'), + 0, 0, $w->{x}, $w->{y}, $width, $height, 'max', 0, 0); + return; + } foreach my $rect($event->region->get_rectangles) { my @values = $rect->values; $pixbuf->render_to_drawable($w->window, $w->style->fg_gc('normal'), @values[0..1], $w->{x}+$values[0], $w->{y}+$values[1], @values[2..3], 'max', 0, 0); } - # workaround Gtk+ bug: in installer, first event is not complete: - if ($::isInstall && !$not_my_first_event) { - $not_my_first_event = 1; - $pixbuf->render_to_drawable($w->window, $w->style->fg_gc('normal'), - 0, 0, $w->{x}, $w->{y}, $width, $height, 'max', 0, 0); - } }); } : sub { my ($w, $file, $o_size) = @_; |