From e60e86c06a34f6c1801d119a70819f21cbeb8f04 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Sun, 18 Mar 2007 12:53:33 +0000 Subject: Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar --- 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() -- cgit v0.9.1