[Sugar-devel] [PATCH] Timer for resize that prevents repetitive resize operation.
Gonzalo Odiard
gonzalo at laptop.org
Mon Jul 4 08:32:40 EDT 2011
Thanks Manuel.
I have added a comment in the ticket
http://dev.laptop.org/ticket/10770#comment:3
Please contact me about any doubt.
Gonzalo
2011/7/1 Manuel Quiñones <manuq at laptop.org>
> Fixes OLPC #10770 .
>
> Signed-off-by: Manuel Quiñones <manuq at laptop.org>
> ---
> Desenho.py | 20 ++++++++++++++++++--
> 1 files changed, 18 insertions(+), 2 deletions(-)
>
> diff --git a/Desenho.py b/Desenho.py
> index 9b6c7b5..5bab524 100644
> --- a/Desenho.py
> +++ b/Desenho.py
> @@ -68,7 +68,10 @@ import gtk
> import logging
> import math
> import gc
> +import gobject
>
> +RESIZE_TIMER = 1500 # The time to wait for the resize operation to be
> + # executed, after the resize controls are pressed.
>
> ##Pixmap manipulation
> class Desenho:
> @@ -80,6 +83,7 @@ class Desenho:
> @param widget -- Area object (GtkDrawingArea)
>
> """
> + self.waiting_for_resize = False
> #self.d = widget
>
> def line(self, widget, coords):
> @@ -706,6 +710,15 @@ class Desenho:
> @param height_percent -- Percent of y scale
>
> """
> + self.width_percent = width_percent
> + self.height_percent = height_percent
> +
> + # Add a timer for resize if there isn't any already:
> + if not self.waiting_for_resize:
> + self.waiting_for_resize = True
> + gobject.timeout_add(RESIZE_TIMER, self._do_resize, widget)
> +
> + def _do_resize(self, widget):
> width, height = widget.window.get_size()
> widget.desenha = True
> widget.selmove = True
> @@ -723,8 +736,8 @@ class Desenho:
>
> w = self.pixbuf_resize.get_width()
> h = self.pixbuf_resize.get_height()
> - wr = int(w * width_percent)
> - hr = int(h * height_percent)
> + wr = int(w * self.width_percent)
> + hr = int(h * self.height_percent)
>
> resized = self.pixbuf_resize.scale_simple(wr, hr,
> gtk.gdk.INTERP_HYPER)
>
> @@ -750,6 +763,9 @@ class Desenho:
> widget.queue_draw()
> gc.collect()
>
> + self.waiting_for_resize = False
> + return False
> +
> def polygon(self, widget, coords, temp, fill, param=None):
> """Draw polygon.
>
> --
> 1.7.4.4
>
> _______________________________________________
> Sugar-devel mailing list
> Sugar-devel at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sugarlabs.org/archive/sugar-devel/attachments/20110704/612acf1c/attachment.html>
More information about the Sugar-devel
mailing list