diff options
Diffstat (limited to 'perl-install')
-rw-r--r-- | perl-install/install_steps_gtk.pm | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm index bed9318dd..175ece0ea 100644 --- a/perl-install/install_steps_gtk.pm +++ b/perl-install/install_steps_gtk.pm @@ -541,30 +541,32 @@ sub installPackages { my ($pix, undef) = gtkcreate_png($f); my $dbl_area; my $darea = new Gtk::DrawingArea; - gtkpack($box, $advertising = gtksignal_connect(gtkset_usize($darea, $width, $height), expose_event => sub { - if (!defined($dbl_area)) { - $dbl_area = new Gtk::Gdk::Pixmap($darea->window, $width, $height); - $dbl_area->draw_pixmap($darea->style->bg_gc('normal'), - $pix, 0, 0, $width, $height); - my $font = $darea->style->font; - my $style= new Gtk::Style; - $style->font(Gtk::Gdk::Font->fontset_load($font)); - my $gc_text = new Gtk::Gdk::GC($darea->window); - $gc_text->set_foreground(gtkcolor(255, 255, 255)); - foreach (@data) { - my ($width, $height, $lines, $widths, $heights, $ascents, $descents) = get_text_coord ( - $_->[0], $style, $_->[3], $_->[4], 1, 0, 1, 1); - my $i = 0; - foreach (@{$lines}) { - $dbl_area->draw_string($style->font, $gc_text, ${$widths}[$i], ${$ascents}[$i] + ${$heights}[$i], $_); - $i++; - } - } - } else { - $darea->window->draw_pixmap($darea->style->bg_gc('normal'), - $dbl_area, 0, 0, 0, 0, $width, $height); - } - })); + gtkpack($box, $advertising = gtksignal_connect(gtkset_usize($darea, $width, $height), expose_event => sub { + eval { + if (!defined($dbl_area)) { + $dbl_area = new Gtk::Gdk::Pixmap($darea->window, $width, $height); + $dbl_area->draw_pixmap($darea->style->bg_gc('normal'), + $pix, 0, 0, $width, $height); + my $font = $darea->style->font; + my $style= new Gtk::Style; + $style->font(Gtk::Gdk::Font->fontset_load($font)); + my $gc_text = new Gtk::Gdk::GC($darea->window); + $gc_text->set_foreground(gtkcolor(255, 255, 255)); + foreach (@data) { + my ($width, $height, $lines, $widths, $heights, $ascents, $descents) = + get_text_coord ($_->[0], $style, $_->[3], $_->[4], 1, 0, 1, 1); + my $i = 0; + foreach (@{$lines}) { + $dbl_area->draw_string($style->font, $gc_text, + ${$widths}[$i], ${$ascents}[$i] + ${$heights}[$i], $_); + $i++; + } + } + } else { + $darea->window->draw_pixmap($darea->style->bg_gc('normal'), + $dbl_area, 0, 0, 0, 0, $width, $height); + } + }})); } } else { $advertising = undef; |