Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo Odiard <godiard@gmail.com>2013-12-20 15:23:30 (GMT)
committer Gonzalo Odiard <godiard@gmail.com>2013-12-20 15:23:30 (GMT)
commit18726b28d0286640d887d5dfe9e74a0972bc1bd0 (patch)
treeca2ed14f7d4310fa51fd3a757f46a8c9489429bf
parentfc74c6b45c6a9af08ba3119fba6df5bf1fb8d686 (diff)
Fix bucket color - SL #4622
Divide and multiply the color numbers to use them in the different formats needed produce rounding errors and change the color. Store the bucket colors as integer in a separated property. Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
-rw-r--r--Area.py13
-rw-r--r--toolbox.py2
2 files changed, 8 insertions, 7 deletions
diff --git a/Area.py b/Area.py
index 3f8b3e0..a0ebf56 100644
--- a/Area.py
+++ b/Area.py
@@ -169,6 +169,7 @@ class Area(Gtk.DrawingArea):
'fill': True,
'cairo_stroke_color': (0.0, 0.0, 0.0, 1.0),
'cairo_fill_color': (0.0, 0.0, 0.0, 1.0),
+ 'bucket_color': (0, 0, 0),
'alpha': 1.0,
'vertices': 6.0,
'font_description': 'Sans 12'}
@@ -818,13 +819,13 @@ class Area(Gtk.DrawingArea):
self.d.clear_control_points()
def flood_fill(self, x, y):
- stroke_color = self.tool['cairo_stroke_color']
- r, g, b = stroke_color[0], stroke_color[1], stroke_color[2]
+ bucket_color = self.tool['bucket_color']
+ r, g, b = bucket_color[0], bucket_color[1], bucket_color[2]
# pack the color in a int as 0xAARRGGBB
- fill_color = 0xff000000 + (int(r * 255 * 65536) +
- int(g * 255 * 256) +
- int(b * 255))
+ fill_color = 0xff000000 + (int(r / 255 * 65536) +
+ int(g / 255 * 256) +
+ int(b / 255))
logging.error('fill_color %d', fill_color)
# load a array with the surface data
@@ -1169,6 +1170,8 @@ class Area(Gtk.DrawingArea):
red = color.red / 65535.0
green = color.green / 65535.0
blue = color.blue / 65535.0
+ # for bucket operation, store the integer values
+ self.tool['bucket_color'] = (color.red, color.green, color.blue)
self.tool['cairo_stroke_color'] = (red, green, blue, alpha)
rgba = Gdk.RGBA()
rgba.red, rgba.green, rgba.blue, rgba.alpha = red, green, blue, alpha
diff --git a/toolbox.py b/toolbox.py
index 78cf76c..c0ab27b 100644
--- a/toolbox.py
+++ b/toolbox.py
@@ -429,8 +429,6 @@ class ToolsToolbarBuilder():
self.set_tool(button, self._selected_tool_name)
def _color_button_cb(self, widget, pspec):
- logging.error('ToolsToolbarBuilder._color_button_cb')
-
new_color = widget.get_color()
self._activity.area.set_stroke_color(new_color)