Index: channels/__init__.py ================================================================== --- channels/__init__.py +++ channels/__init__.py @@ -378,12 +378,15 @@ map(f, streams) return streams # state icon: bookmark star, or deleted mark def prepare_filter_icons(self, row): - if conf.show_bookmarks:# and "bookmarks" in self.parent.channels: + if conf.show_bookmarks: + # and "bookmarks" in self.parent.channels: row["favourite"] = self.parent.bookmarks.is_in(row.get("url", "file:///tmp/none")) + # this should really go into bookmarks plugin itself, + # disadvantage: would decelerate processing loop further if not row.get("state"): if row.get("favourite"): row["state"] = gtk.STOCK_ABOUT if row.get("deleted"): row["state"] = gtk.STOCK_DELETE Index: channels/favicon.py ================================================================== --- channels/favicon.py +++ channels/favicon.py @@ -272,11 +272,11 @@ # Check for valid image binary, possibly convert or resize, then save to cache filename def store_image(imgdata, fn, resize=None): # Convert accepted formats -- even PNG for filtering now - if re.match(br'^(.PNG|GIF\d+|.{0,15}JFIF|\x00\x00\x01\x00|.{0,255}]+svg)', imgdata): + if re.match(br'^(.PNG|GIF\d+|.{0,15}(Exif|JFIF)|\x00\x00\x01\x00|.{0,255}]+svg)', imgdata): try: # Read from byte/str image = Image.open(BytesIO(imgdata)) log.FAVICON_IMAGE_TO_PNG(image, image.size, resize)