Ticket #3804: fix_3804.patch

File fix_3804.patch, 2.1 KB (added by manuq, 12 years ago)

First version. From this we can see background needs to be painted white, otherwise artifacts appear.

  • src/jarabe/journal/expandedentry.py

    diff --git a/src/jarabe/journal/expandedentry.py b/src/jarabe/journal/expandedentry.py
    index e0c603f..1886483 100644
    a b class ExpandedEntry(gtk.EventBox): 
    194194        return date
    195195
    196196    def _create_preview(self):
    197         width = style.zoom(320)
    198         height = style.zoom(240)
    199197        box = gtk.EventBox()
    200198        box.modify_bg(gtk.STATE_NORMAL, style.COLOR_WHITE.get_gdk_color())
    201199
     200        box.connect('expose-event', self.__expose_event_cb)
     201        box.connect_after('button-release-event',
     202                          self._preview_box_button_release_event_cb)
     203        return box
     204
     205    def __expose_event_cb(self, box, event):
     206        width = style.zoom(320)
     207        height = style.zoom(240)
     208
    202209        if len(self._metadata.get('preview', '')) > 4:
    203210            if self._metadata['preview'][1:4] == 'PNG':
    204211                preview_data = self._metadata['preview']
    class ExpandedEntry(gtk.EventBox): 
    214221                surface = cairo.ImageSurface.create_from_png(png_file)
    215222                png_width = surface.get_width()
    216223                png_height = surface.get_height()
    217                 pixmap = gtk.gdk.Pixmap(None, png_width, png_height, 24)
     224                gdk_window = self.get_toplevel().window
     225                pixmap = gtk.gdk.Pixmap(gdk_window, png_width, png_height, -1)
    218226                cr = pixmap.cairo_create()
    219227                cr.set_source_surface(surface, 0, 0)
    220228                cr.scale(width / png_width, height / png_height)
    class ExpandedEntry(gtk.EventBox): 
    230238
    231239        if has_preview:
    232240            box.add(im)
     241            im.show()
    233242        else:
    234243            label = gtk.Label()
    235244            label.set_text(_('No preview'))
    236245            label.set_size_request(width, height)
    237246            box.add(label)
    238 
    239         box.connect_after('button-release-event',
    240                           self._preview_box_button_release_event_cb)
    241         return box
     247            label.show()
    242248
    243249    def _create_technical(self):
    244250        vbox = gtk.VBox()