From fc74c6b45c6a9af08ba3119fba6df5bf1fb8d686 Mon Sep 17 00:00:00 2001 From: Gonzalo Odiard Date: Fri, 20 Dec 2013 13:51:26 +0000 Subject: Fix the operation of end a selection Now, when a tool is selected, and a selection is active, the selection finish. Also the canvas is updated properly. Signed-off-by: Gonzalo Odiard --- diff --git a/Area.py b/Area.py index 52d155d..3f8b3e0 100644 --- a/Area.py +++ b/Area.py @@ -532,17 +532,21 @@ class Area(Gtk.DrawingArea): self._selmove = False self._selresize = True else: - self.getout() - self._selmove = False - self._selresize = False + self.end_selection() design_mode = False - else: self._selmove = False if design_mode: self.desenha = True + def end_selection(self): + if self.is_selected(): + self.getout() + self._selmove = False + self._selresize = False + self.queue_draw() + def calculate_damaged_area(self, points): min_x = points[0][0] min_y = points[0][1] diff --git a/toolbox.py b/toolbox.py index 26b5418..78cf76c 100644 --- a/toolbox.py +++ b/toolbox.py @@ -340,7 +340,7 @@ class DrawToolButton(RadioToolButton): class ToolsToolbarBuilder(): #Tool default definitions - _TOOL_PENCIL_NAME = 'pencil' + #_TOOL_PENCIL_NAME = 'pencil' _TOOL_BRUSH_NAME = 'brush' _TOOL_ERASER_NAME = 'eraser' _TOOL_BUCKET_NAME = 'bucket' @@ -354,6 +354,7 @@ class ToolsToolbarBuilder(): self._activity = activity self.properties = self._activity.area.tool self._fill_color_button = fill_color_button + self._selected_tool_name = self._TOOL_BRUSH_NAME self._tool_brush = DrawToolButton('tool-brush', activity.tool_group, _('Brush')) @@ -390,11 +391,10 @@ class ToolsToolbarBuilder(): self._tool_brush, self.set_tool) - self._tool_brush.connect('clicked', self.set_tool, - self._TOOL_BRUSH_NAME) + self._tool_brush.connect('clicked', self._tool_button_clicked_cb) self._stroke_color = ButtonStrokeColor(activity) - self.set_tool(self._tool_brush, 'brush') + self.set_tool(self._tool_brush, self._TOOL_BRUSH_NAME) self._stroke_color.connect('notify::color', self._color_button_cb) toolbar.insert(self._stroke_color, -1) @@ -411,15 +411,22 @@ class ToolsToolbarBuilder(): self._tool_brush.set_icon_name(widget.icon_name) self._stroke_color.set_selected_tool(tool_name) - if tool_name == 'stamp': + if tool_name == self._TOOL_STAMP_NAME: resized_stamp = self._activity.area.setup_stamp() self._stroke_color.color_button.set_resized_stamp(resized_stamp) else: self._stroke_color.color_button.stop_stamping() + if tool_name != self._TOOL_MARQUEE_RECT_NAME: + self._activity.area.end_selection() + self._stroke_color.update_stamping() self.properties['name'] = tool_name self._activity.area.set_tool(self.properties) self._fill_color_button.set_sensitive(False) + self._selected_tool_name = tool_name + + def _tool_button_clicked_cb(self, button): + self.set_tool(button, self._selected_tool_name) def _color_button_cb(self, widget, pspec): logging.error('ToolsToolbarBuilder._color_button_cb') @@ -627,6 +634,7 @@ class ShapesToolbarBuilder(): self.properties['name'] = tool_name self._activity.area.set_tool(self.properties) self._fill_color_button.set_sensitive(True) + self._activity.area.end_selection() ##Make the Text Toolbar -- cgit v0.9.1