Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco 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)
commite60e86c06a34f6c1801d119a70819f21cbeb8f04 (patch)
tree03ae1fa547e8ec4390668fb142a1be3b69760904
parent154a0e91ffece83fd1e7ef836c6faaa83166e93c (diff)
parent5104e24ffa76768707551f4cf2c2e0528bdee408 (diff)
Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar
-rw-r--r--shell/view/clipboardicon.py9
-rw-r--r--shell/view/frame/frame.py11
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()