From 611df56bcbd25a992226c4a71e426100f5d496f7 Mon Sep 17 00:00:00 2001
From: Simon Schampijer <simon@laptop.org>
Date: Tue, 16 Oct 2012 15:28:39 +0200
Subject: [PATCH toolkit-gtk3] Add the long-press signal to the EventIcon
On a long press the Palette is raised
---
src/sugar3/graphics/icon.py | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/src/sugar3/graphics/icon.py b/src/sugar3/graphics/icon.py
index 5863118..be86fb0 100644
a
|
b
|
from gi.repository import GdkPixbuf |
32 | 32 | from gi.repository import Rsvg |
33 | 33 | import cairo |
34 | 34 | |
| 35 | from gi.repository import SugarGestures |
| 36 | |
35 | 37 | from sugar3.graphics import style |
36 | 38 | from sugar3.graphics.xocolor import XoColor |
37 | 39 | from sugar3.util import LRU |
… |
… |
class EventIcon(Gtk.EventBox): |
497 | 499 | from sugar3.graphics.palette import CursorInvoker |
498 | 500 | self._palette_invoker = CursorInvoker() |
499 | 501 | self._palette_invoker.attach(self) |
| 502 | |
| 503 | gesture_controller = SugarGestures.LongPressController() |
| 504 | gesture_controller.connect('pressed', self.__long_pressed_cb) |
| 505 | gesture_controller.attach(self, |
| 506 | SugarGestures.EventControllerFlags.NONE) |
| 507 | self._recognized_long_press_event = False |
| 508 | self.connect('button-release-event', self.__button_release_cb) |
| 509 | |
500 | 510 | self.connect('destroy', self.__destroy_cb) |
501 | 511 | |
502 | 512 | def do_draw(self, cr): |
… |
… |
class EventIcon(Gtk.EventBox): |
678 | 688 | |
679 | 689 | self.set_palette(Palette(text)) |
680 | 690 | |
| 691 | def __long_pressed_cb(self, controller, x, y): |
| 692 | self._recognized_long_press_event = True |
| 693 | if self.props.palette: |
| 694 | self.props.palette.popup(immediate=True, state=1) |
| 695 | |
| 696 | def __button_release_cb(self, widget, event): |
| 697 | if self._recognized_long_press_event: |
| 698 | self._recognized_long_press_event = False |
| 699 | return True |
| 700 | else: |
| 701 | return False |
| 702 | |
681 | 703 | |
682 | 704 | class CanvasIcon(EventIcon): |
683 | 705 | """ |