diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2007-03-18 12:53:33 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2007-03-18 12:53:33 (GMT) |
commit | e60e86c06a34f6c1801d119a70819f21cbeb8f04 (patch) | |
tree | 03ae1fa547e8ec4390668fb142a1be3b69760904 | |
parent | 154a0e91ffece83fd1e7ef836c6faaa83166e93c (diff) | |
parent | 5104e24ffa76768707551f4cf2c2e0528bdee408 (diff) |
Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar
-rw-r--r-- | shell/view/clipboardicon.py | 9 | ||||
-rw-r--r-- | shell/view/frame/frame.py | 11 |
2 files changed, 18 insertions, 2 deletions
diff --git a/shell/view/clipboardicon.py b/shell/view/clipboardicon.py index 5e941f6..0844dd2 100644 --- a/shell/view/clipboardicon.py +++ b/shell/view/clipboardicon.py @@ -114,7 +114,14 @@ class ClipboardIcon(CanvasIcon): formats = obj['FORMATS'] if len(formats) > 0: path = cb_service.get_object_data(self._object_id, formats[0]) - if os.path.exists(path): + + # FIXME: would be better to check for format.onDisk + try: + path_exists = os.path.exists(path) + except TypeError: + path_exists = False + + if path_exists: activityfactory.create_with_uri(self._activity, path) else: logging.debug("Clipboard item file path %s didn't exist" % path) diff --git a/shell/view/frame/frame.py b/shell/view/frame/frame.py index aedc56d..9474808 100644 --- a/shell/view/frame/frame.py +++ b/shell/view/frame/frame.py @@ -30,6 +30,7 @@ from view.frame.framepopupcontext import FramePopupContext from model.ShellModel import ShellModel from sugar.graphics import animator from sugar.graphics import units +from sugar.clipboard import clipboardservice MODE_NONE = 0 MODE_MOUSE = 1 @@ -156,6 +157,9 @@ class Frame(object): screen = gtk.gdk.screen_get_default() screen.connect('size-changed', self._size_changed_cb) + cb_service = clipboardservice.get_instance() + cb_service.connect_after('object-added', self._clipboard_object_added_cb) + self._key_listener = _KeyListener(self) self._mouse_listener = _MouseListener(self) @@ -297,7 +301,12 @@ class Frame(object): def _size_changed_cb(self, screen): self._update_position() - + + def _clipboard_object_added_cb(self, cb_service, object_id, name): + if not self.visible: + self.show() + gobject.timeout_add(2000, lambda: self.hide()) + def _popup_context_activated_cb(self, popup_context): self._mouse_listener.mouse_enter() |