Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2009-08-29 21:50:18 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2009-09-08 08:21:19 (GMT)
commitaed38758bea768a0f98302777b9e081671510282 (patch)
treeb2eace155d3dfaa24c07e7d2f2d2885e9c42ec73
parent6b992ee9fbcad4727d7ed27b0a771da2cadf1854 (diff)
Show selecting status of favorite check box in journal list view even if "start" is prelighted #1247
-rw-r--r--src/sugar/graphics/icon.py40
1 files changed, 26 insertions, 14 deletions
diff --git a/src/sugar/graphics/icon.py b/src/sugar/graphics/icon.py
index d13e079..3dc7bb8 100644
--- a/src/sugar/graphics/icon.py
+++ b/src/sugar/graphics/icon.py
@@ -959,6 +959,7 @@ class CellRendererIcon(gtk.GenericCellRenderer):
self._buffer = _IconBuffer()
self._buffer.cache = True
+ self._xo_color = None
self._fill_color = None
self._stroke_color = None
self._prelit_fill_color = None
@@ -994,15 +995,14 @@ class CellRendererIcon(gtk.GenericCellRenderer):
icon_name = gobject.property(type=str, setter=set_icon_name)
+ def get_xo_color(self):
+ return self._xo_color
+
def set_xo_color(self, value):
- if value is not None:
- self._stroke_color = value.get_stroke_color()
- self._fill_color = value.get_fill_color()
- else:
- self._stroke_color = None
- self._fill_color = None
+ self._xo_color = value
- xo_color = gobject.property(type=object, setter=set_xo_color)
+ xo_color = gobject.property(type=object,
+ getter=get_xo_color, setter=set_xo_color)
def set_fill_color(self, value):
if self._fill_color != value:
@@ -1089,17 +1089,29 @@ class CellRendererIcon(gtk.GenericCellRenderer):
return False
def on_render(self, window, widget, background_area, cell_area,
- expose_area, flags):
- has_prelit_colors = None not in [self._prelit_fill_color,
- self._prelit_stroke_color]
+ expose_area, flags):
+ if self._xo_color is not None:
+ stroke_color = self._xo_color.get_stroke_color()
+ fill_color = self._xo_color.get_fill_color()
+ prelit_fill_color = stroke_color
+ prelit_stroke_color = fill_color
+ else:
+ stroke_color = self._stroke_color
+ fill_color = self._fill_color
+ prelit_fill_color = self._prelit_fill_color
+ prelit_stroke_color = self._prelit_stroke_color
+
+ has_prelit_colors = None not in [prelit_fill_color,
+ prelit_stroke_color]
+
if flags & gtk.CELL_RENDERER_PRELIT and has_prelit_colors and \
self._is_prelit(widget):
- self._buffer.fill_color = self._prelit_fill_color
- self._buffer.stroke_color = self._prelit_stroke_color
+ self._buffer.fill_color = prelit_fill_color
+ self._buffer.stroke_color = prelit_stroke_color
else:
- self._buffer.fill_color = self._fill_color
- self._buffer.stroke_color = self._stroke_color
+ self._buffer.fill_color = fill_color
+ self._buffer.stroke_color = stroke_color
surface = self._buffer.get_surface()
if surface is None: