Skip to content
Permalink
Browse files
Use SugarExt.clipboard_set_with_data
As described in SL#4307, Gtk.Clipboard.set_with_data is not
introspectable, use SugarExt.clipboard_set_with_data to access
it. Use Gtk.Clipboard.set_with_data if available.

Fixes SL#4307.

Signed-off-by: Martin Abente Lahaye <tch@sugarlabs.org>
  • Loading branch information
tchx84 authored and godiard committed Jan 14, 2015
1 parent d4ea81c commit b970727
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 8 deletions.
@@ -19,6 +19,7 @@

from gi.repository import Gtk
from gi.repository import Gdk
from gi.repository import SugarExt

from sugar3.graphics.radiotoolbutton import RadioToolButton
from sugar3.graphics.icon import Icon
@@ -90,10 +91,23 @@ def _put_in_clipboard(self):
targets = self._get_targets()
if targets:
x_clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
if not x_clipboard.set_with_data(targets,
self._clipboard_data_get_cb,
self._clipboard_clear_cb,
targets):

# XXX SL#4307 - until set_with_data bindings are fixed upstream
if hasattr(x_clipboard, 'set_with_data'):
stored = x_clipboard.set_with_data(
targets,
self._clipboard_data_get_cb,
self._clipboard_clear_cb,
targets)
else:
stored = SugarExt.clipboard_set_with_data(
x_clipboard,
targets,
self._clipboard_data_get_cb,
self._clipboard_clear_cb,
targets)

if not stored:
logging.error('GtkClipboard.set_with_data failed!')
else:
self.owns_clipboard = True
@@ -24,6 +24,7 @@
from gi.repository import Gtk
from gi.repository import Gdk
from gi.repository import Gio
from gi.repository import SugarExt

from sugar3.graphics import style
from sugar3.graphics.palette import Palette
@@ -423,10 +424,20 @@ def __copy_to_clipboard_cb(self, menu_item):
_('Warning'))
return

clipboard.set_with_data(
[Gtk.TargetEntry.new('text/uri-list', 0, 0)],
self.__clipboard_get_func_cb,
self.__clipboard_clear_func_cb, None)
# XXX SL#4307 - until set_with_data bindings are fixed upstream
if hasattr(clipboard, 'set_with_data'):
clipboard.set_with_data(
[Gtk.TargetEntry.new('text/uri-list', 0, 0)],
self.__clipboard_get_func_cb,
self.__clipboard_clear_func_cb,
None)
else:
SugarExt.clipboard_set_with_data(
clipboard,
[Gtk.TargetEntry.new('text/uri-list', 0, 0)],
self.__clipboard_get_func_cb,
self.__clipboard_clear_func_cb,
None)

def __clipboard_get_func_cb(self, clipboard, selection_data, info, data):
# Get hold of a reference so the temp file doesn't get deleted

0 comments on commit b970727

Please sign in to comment.