summaryrefslogtreecommitdiffstats
path: root/perl-install/mygtk2.pm
diff options
context:
space:
mode:
authorThierry Vignaud <tv@mandriva.org>2008-10-01 10:44:27 +0000
committerThierry Vignaud <tv@mandriva.org>2008-10-01 10:44:27 +0000
commitc6550ae930cf5716527c555b57b27882fca3a2f6 (patch)
treeae99cb38d6c06ab79db5d5046b1808dee7633a47 /perl-install/mygtk2.pm
parent35ee9eef791d93e7156304d8892a3f7e16dc56ba (diff)
downloaddrakx-c6550ae930cf5716527c555b57b27882fca3a2f6.tar
drakx-c6550ae930cf5716527c555b57b27882fca3a2f6.tar.gz
drakx-c6550ae930cf5716527c555b57b27882fca3a2f6.tar.bz2
drakx-c6550ae930cf5716527c555b57b27882fca3a2f6.tar.xz
drakx-c6550ae930cf5716527c555b57b27882fca3a2f6.zip
(_gtk__Image_using_pixbuf) revert r246993 from 2008-09-29, thus fixing
dithering regression: "(_gtk__Image_using_pixbuf) simplify using pixbuf storage (which brings in optimized refresh on expose event as side effect) (needed for next commit)"
Diffstat (limited to 'perl-install/mygtk2.pm')
-rw-r--r--perl-install/mygtk2.pm12
1 files changed, 11 insertions, 1 deletions
diff --git a/perl-install/mygtk2.pm b/perl-install/mygtk2.pm
index 60e4a7b1d..28cdaed9f 100644
--- a/perl-install/mygtk2.pm
+++ b/perl-install/mygtk2.pm
@@ -330,7 +330,17 @@ sub _gtk__Image {
} : $class =~ /using_pixbuf/ ? sub {
my ($w, $file) = @_;
my $pixbuf = _pixbuf_render_alpha(gtknew('Pixbuf', file => $file, %{$w->{options}}), 255);
- $w->set_from_pixbuf($pixbuf);
+ my ($width, $height) = ($pixbuf->get_width, $pixbuf->get_height);
+ $w->set_size_request($width, $height);
+ $w->signal_connect(expose_event => sub {
+ if (!$w->{x}) {
+ my $alloc = $w->allocation;
+ $w->{x} = $alloc->x;
+ $w->{y} = $alloc->y;
+ }
+ $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) = @_;
my $pixbuf = gtknew('Pixbuf', file => $file, if_($o_size, size => $o_size), %{$w->{options}});