68 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
Copied from Fedora.
 | 
						|
 | 
						|
http://pkgs.fedoraproject.org/cgit/rpms/inkscape.git/plain/inkscape-0.91-drop-wait-for-targets.patch?id=eb5340800b563d6b05aa5f11a2f24f2cc0d8c80e
 | 
						|
 | 
						|
=== modified file 'src/ui/clipboard.cpp'
 | 
						|
--- src/ui/clipboard.cpp	2016-04-02 15:15:43 +0000
 | 
						|
+++ src/ui/clipboard.cpp	2016-04-07 16:30:32 +0000
 | 
						|
@@ -146,8 +146,6 @@
 | 
						|
     void _setClipboardColor(guint32);
 | 
						|
     void _userWarn(SPDesktop *, char const *);
 | 
						|
 
 | 
						|
-    void _inkscape_wait_for_targets(std::list<Glib::ustring> &);
 | 
						|
-
 | 
						|
     // private properites
 | 
						|
     SPDocument *_clipboardSPDoc; ///< Document that stores the clipboard until someone requests it
 | 
						|
     Inkscape::XML::Node *_defs; ///< Reference to the clipboard document's defs node
 | 
						|
@@ -1302,9 +1300,7 @@
 | 
						|
  */
 | 
						|
 Glib::ustring ClipboardManagerImpl::_getBestTarget()
 | 
						|
 {
 | 
						|
-    // GTKmm's wait_for_targets() is broken, see the comment in _inkscape_wait_for_targets()
 | 
						|
-    std::list<Glib::ustring> targets; // = _clipboard->wait_for_targets();
 | 
						|
-    _inkscape_wait_for_targets(targets);
 | 
						|
+    std::list<Glib::ustring> targets = _clipboard->wait_for_targets();
 | 
						|
 
 | 
						|
     // clipboard target debugging snippet
 | 
						|
     /*
 | 
						|
@@ -1456,39 +1452,6 @@
 | 
						|
     desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, msg);
 | 
						|
 }
 | 
						|
 
 | 
						|
-
 | 
						|
-// GTKMM's clipboard::wait_for_targets is buggy and might return bogus, see
 | 
						|
-//
 | 
						|
-// https://bugs.launchpad.net/inkscape/+bug/296778
 | 
						|
-// http://mail.gnome.org/archives/gtk-devel-list/2009-June/msg00062.html
 | 
						|
-//
 | 
						|
-// for details. Until this has been fixed upstream we will use our own implementation
 | 
						|
-// of this method, as copied from /gtkmm-2.16.0/gtk/gtkmm/clipboard.cc.
 | 
						|
-void ClipboardManagerImpl::_inkscape_wait_for_targets(std::list<Glib::ustring> &listTargets)
 | 
						|
-{
 | 
						|
-    //Get a newly-allocated array of atoms:
 | 
						|
-    GdkAtom* targets = NULL;
 | 
						|
-    gint n_targets = 0;
 | 
						|
-    gboolean test = gtk_clipboard_wait_for_targets( gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), &targets, &n_targets );
 | 
						|
-    if (!test || (targets == NULL)) {
 | 
						|
-        return;
 | 
						|
-    }
 | 
						|
-
 | 
						|
-    //Add the targets to the C++ container:
 | 
						|
-    for (int i = 0; i < n_targets; i++)
 | 
						|
-    {
 | 
						|
-        //Convert the atom to a string:
 | 
						|
-        gchar* const atom_name = gdk_atom_name(targets[i]);
 | 
						|
-
 | 
						|
-        Glib::ustring target;
 | 
						|
-        if (atom_name) {
 | 
						|
-            target = Glib::ScopedPtr<char>(atom_name).get(); //This frees the gchar*.
 | 
						|
-        }
 | 
						|
-
 | 
						|
-        listTargets.push_back(target);
 | 
						|
-    }
 | 
						|
-}
 | 
						|
-
 | 
						|
 /* #######################################
 | 
						|
           ClipboardManager class
 | 
						|
    ####################################### */
 | 
						|
 |