Thanks.<br>I will add a function to detect the "brush_like_tools".<br><br>Gonzalo <br><br><div class="gmail_quote">On Thu, Jun 3, 2010 at 4:03 AM, James Cameron <span dir="ltr"><<a href="mailto:quozl@laptop.org">quozl@laptop.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">On Wed, Jun 02, 2010 at 08:03:29PM -0300, Gonzalo Odiard wrote:<br>
> >From 3ac11e0be2adc0c805788c38ab90b3226d625a89 Mon Sep 17 00:00:00 2001<br>
> From: Gonzalo Odiard <<a href="mailto:godiard@gmail.com">godiard@gmail.com</a>><br>
> Date: Wed, 2 Jun 2010 20:01:10 -0300<br>
> Subject: [PATCH] hide brush when mouse leave area<br>
><br>
> ---<br>
> Area.py | 15 ++++++++++++++-<br>
> 1 files changed, 14 insertions(+), 1 deletions(-)<br>
><br>
> diff --git a/Area.py b/Area.py<br>
> index 8a5e523..c83f38f 100644<br>
> --- a/Area.py<br>
> +++ b/Area.py<br>
> @@ -97,11 +97,15 @@ class Area(gtk.DrawingArea):<br>
> gtk.gdk.BUTTON_PRESS_MASK |<br>
> gtk.gdk.BUTTON_RELEASE_MASK|<br>
> gtk.gdk.EXPOSURE_MASK |<br>
> + gtk.gdk.LEAVE_NOTIFY_MASK|<br>
> + gtk.gdk.ENTER_NOTIFY_MASK|<br>
<br>
</div>Unnecessary change of spacing for expression.<br>
<div class="im"><br>
> gtk.gdk.KEY_PRESS_MASK)<br>
><br>
> self.connect("expose_event",self.expose)<br>
> self.connect("motion_notify_event", self.mousemove)<br>
> self.connect("button_press_event", self.mousedown)<br>
> + self.connect("leave_notify_event", self.mouseleave)<br>
> + self.connect("enter_notify_event", self.mouseenter)<br>
> self.connect("button_release_event", self.mouseup)<br>
> self.connect("key_press_event", self.key_press)<br>
><br>
> @@ -353,8 +357,17 @@ class Area(gtk.DrawingArea):<br>
> self.desenha = True<br>
> widget.queue_draw()<br>
><br>
> -<br>
> + def mouseleave(self,widget,event):<br>
> + if self.tool['name'] in ['pencil','eraser','brush','rainbow']:<br>
<br>
</div>We are seeing this test more and more. What pain you will experience<br>
when you add another tool name to that list. Perhaps it should be a<br>
list in the object attributes, or even a function.<br>
<br>
> + self.drawing = True<br>
<div class="im">> + widget.queue_draw_area(self.x_cursor-size, self.y_cursor-size,<br>
> size*2, size*2)<br>
<br>
</div>size is not defined, generates traceback in log.<br>
<br>
><br>
> + def mouseenter(self,widget,event):<br>
<div class="im">> + if self.tool['name'] in ['pencil','eraser','brush','rainbow']:<br>
> + self.drawing = False<br>
> + widget.queue_draw_area(self.x_cursor-size, self.y_cursor-size,<br>
> size*2, size*2)<br>
<br>
</div>size is not defined.<br>
<br>
The call to queue_draw_area could be factored.<br>
<br>
Counter-proposal:<br>
<br>