diff options
author | Pootle daemon <pootle@pootle.sugarlabs.org> | 2012-11-14 05:31:56 (GMT) |
---|---|---|
committer | Pootle daemon <pootle@pootle.sugarlabs.org> | 2012-11-14 05:31:56 (GMT) |
commit | 37b5437e6a4200277a5de7a8f33ef6520d183f6b (patch) | |
tree | 21df6b35294b1c740f7d4b7c8416e3d53fd622a9 | |
parent | 17a76a9e309909cfb2bab3f14f48a5bd34537901 (diff) | |
parent | 4bada2d734bf75c980b342bbc83e80f51ced30f6 (diff) |
Merge branch 'master' of git.sugarlabs.org:paint/mainline
-rw-r--r-- | Area.py | 22 | ||||
-rw-r--r-- | OficinaActivity.py | 5 |
2 files changed, 20 insertions, 7 deletions
@@ -216,6 +216,8 @@ class Area(Gtk.DrawingArea): # used to identify emulated mouse self._on_touch = False + self._update_timer = None + def _set_screen_dpi(self): dpi = _get_screen_dpi() font_map_default = PangoCairo.font_map_get_default() @@ -399,16 +401,16 @@ class Area(Gtk.DrawingArea): def __event_cb(self, widget, event): if event.type in (Gdk.EventType.TOUCH_BEGIN, Gdk.EventType.TOUCH_CANCEL, Gdk.EventType.TOUCH_END, - Gdk.EventType.BUTTON_PRESS, # Gdk.EventType.TOUCH_UPDATE, + Gdk.EventType.BUTTON_PRESS, Gdk.EventType.TOUCH_UPDATE, Gdk.EventType.BUTTON_RELEASE): #, Gdk.EventType.MOTION_NOTIFY): - x = event.get_coords()[1] - y = event.get_coords()[2] + x = int(event.get_coords()[1]) + y = int(event.get_coords()[2]) seq = str(event.touch.sequence) logging.error('event x %d y %d type %s', x, y, event.type) if event.type in (Gdk.EventType.TOUCH_BEGIN, - Gdk.EventType.TOUCH_UPDATE, Gdk.EventType.BUTTON_PRESS): + Gdk.EventType.BUTTON_PRESS): #Gdk.EventType.MOTION_NOTIFY): if event.type == Gdk.EventType.BUTTON_PRESS: ## http://developer.gnome.org/gtk3/3.4/GtkWidget.html#gtk-widget-get-pointer @@ -418,6 +420,13 @@ class Area(Gtk.DrawingArea): self._on_touch = True button1_pressed = True self.tool_start(x, y, button1_pressed) + elif event.type == Gdk.EventType.TOUCH_UPDATE: + # We need trigger a request to draw the screen inmediatly + # because if not the screen is not updated until + # all the update touch events are processed. + if self._update_timer is None: + self._update_timer = GObject.timeout_add(100, + self.__update_draw) elif event.type in (Gdk.EventType.TOUCH_END, Gdk.EventType.BUTTON_RELEASE): if event.type == Gdk.EventType.BUTTON_RELEASE: @@ -428,6 +437,11 @@ class Area(Gtk.DrawingArea): shift_pressed = False self.tool_end(x, y, shift_pressed) + def __update_draw(self): + self.get_window().process_all_updates() + self._update_timer = None + return False + def tool_start(self, coord_x, coord_y, button1_pressed): width, height = self.get_size() # text diff --git a/OficinaActivity.py b/OficinaActivity.py index e86fffc..5e4528f 100644 --- a/OficinaActivity.py +++ b/OficinaActivity.py @@ -62,7 +62,6 @@ Walter Bender (walter@laptop.org) """ from gi.repository import Gtk -from gi.repository import Gdk import logging from sugar3.activity import activity @@ -88,11 +87,11 @@ class OficinaActivity(activity.Activity): self.fixed = Gtk.Fixed() self.fixed.show() + self.fixed.modify_bg(Gtk.StateType.NORMAL, + style.COLOR_WHITE.get_gdk_color()) self.textview = Gtk.TextView() self.fixed.put(self.textview, 0, 0) - self.textview.override_background_color(Gtk.StateFlags.NORMAL, - Gdk.RGBA(0, 0, 0, 0)) # These attributes are used in other classes, so they should be public self.area = Area(self) |