From d8bc868226539cd94a4bbb249fb1afd968c6d85b Mon Sep 17 00:00:00 2001
From: Aleksey Lim <alsroot@member.fsf.org>
Date: Sat, 29 Aug 2009 21:50:18 +0000
Subject: Show selecting status of favorite check box in journal list view even if "start" is prelighted #1247
---
src/sugar/graphics/icon.py | 40 ++++++++++++++++++++++++++--------------
1 files changed, 26 insertions(+), 14 deletions(-)
diff --git a/src/sugar/graphics/icon.py b/src/sugar/graphics/icon.py
index 76c87d1..1b0356c 100644
a
|
b
|
class CellRendererIcon(gtk.GenericCellRenderer): |
964 | 964 | |
965 | 965 | self._buffer = _IconBuffer() |
966 | 966 | self._buffer.cache = True |
| 967 | self._xo_color = None |
967 | 968 | self._fill_color = None |
968 | 969 | self._stroke_color = None |
969 | 970 | self._prelit_fill_color = None |
… |
… |
class CellRendererIcon(gtk.GenericCellRenderer): |
999 | 1000 | |
1000 | 1001 | icon_name = gobject.property(type=str, setter=set_icon_name) |
1001 | 1002 | |
| 1003 | def get_xo_color(self): |
| 1004 | return self._xo_color |
| 1005 | |
1002 | 1006 | def set_xo_color(self, value): |
1003 | | if value is not None: |
1004 | | self._stroke_color = value.get_stroke_color() |
1005 | | self._fill_color = value.get_fill_color() |
1006 | | else: |
1007 | | self._stroke_color = None |
1008 | | self._fill_color = None |
| 1007 | self._xo_color = value |
1009 | 1008 | |
1010 | | xo_color = gobject.property(type=object, setter=set_xo_color) |
| 1009 | xo_color = gobject.property(type=object, |
| 1010 | getter=get_xo_color, setter=set_xo_color) |
1011 | 1011 | |
1012 | 1012 | def set_fill_color(self, value): |
1013 | 1013 | if self._fill_color != value: |
… |
… |
class CellRendererIcon(gtk.GenericCellRenderer): |
1094 | 1094 | return False |
1095 | 1095 | |
1096 | 1096 | def on_render(self, window, widget, background_area, cell_area, |
1097 | | expose_area, flags): |
1098 | | has_prelit_colors = None not in [self._prelit_fill_color, |
1099 | | self._prelit_stroke_color] |
| 1097 | expose_area, flags): |
| 1098 | if self._xo_color is not None: |
| 1099 | stroke_color = self._xo_color.get_stroke_color() |
| 1100 | fill_color = self._xo_color.get_fill_color() |
| 1101 | prelit_fill_color = stroke_color |
| 1102 | prelit_stroke_color = fill_color |
| 1103 | else: |
| 1104 | stroke_color = self._stroke_color |
| 1105 | fill_color = self._fill_color |
| 1106 | prelit_fill_color = self._prelit_fill_color |
| 1107 | prelit_stroke_color = self._prelit_stroke_color |
| 1108 | |
| 1109 | has_prelit_colors = None not in [prelit_fill_color, |
| 1110 | prelit_stroke_color] |
| 1111 | |
1100 | 1112 | if flags & gtk.CELL_RENDERER_PRELIT and has_prelit_colors and \ |
1101 | 1113 | self._is_prelit(widget): |
1102 | 1114 | |
1103 | | self._buffer.fill_color = self._prelit_fill_color |
1104 | | self._buffer.stroke_color = self._prelit_stroke_color |
| 1115 | self._buffer.fill_color = prelit_fill_color |
| 1116 | self._buffer.stroke_color = prelit_stroke_color |
1105 | 1117 | else: |
1106 | | self._buffer.fill_color = self._fill_color |
1107 | | self._buffer.stroke_color = self._stroke_color |
| 1118 | self._buffer.fill_color = fill_color |
| 1119 | self._buffer.stroke_color = stroke_color |
1108 | 1120 | |
1109 | 1121 | surface = self._buffer.get_surface() |
1110 | 1122 | if surface is None: |