gnu: inkscape: Fix build with glibmm-2.48.
* gnu/packages/patches/inkscape-drop-wait-for-targets.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/inkscape.scm (inkscape)[source]: Add patch.
This commit is contained in:
parent
e993fb8493
commit
0118c6ab62
@ -532,6 +532,7 @@ dist_patch_DATA = \
|
||||
gnu/packages/patches/ilmbase-fix-tests.patch \
|
||||
gnu/packages/patches/imagemagick-test-segv.patch \
|
||||
gnu/packages/patches/imlib2-CVE-2016-4024.patch \
|
||||
gnu/packages/patches/inkscape-drop-wait-for-targets.patch \
|
||||
gnu/packages/patches/irrlicht-mesa-10.patch \
|
||||
gnu/packages/patches/jasper-CVE-2007-2721.patch \
|
||||
gnu/packages/patches/jasper-CVE-2008-3520.patch \
|
||||
|
@ -1,6 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
|
||||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2014, 2016 Mark H Weaver <mhw@netris.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -52,7 +52,10 @@
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"086v01jy896dj86bq7plrf6si4p6gh6ga2v5417llgmminycz8rc"))))
|
||||
"086v01jy896dj86bq7plrf6si4p6gh6ga2v5417llgmminycz8rc"))
|
||||
(patch-flags '("-p0"))
|
||||
(patches
|
||||
(search-patches "inkscape-drop-wait-for-targets.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("aspell" ,aspell)
|
||||
|
68
gnu/packages/patches/inkscape-drop-wait-for-targets.patch
Normal file
68
gnu/packages/patches/inkscape-drop-wait-for-targets.patch
Normal file
@ -0,0 +1,68 @@
|
||||
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
|
||||
####################################### */
|
||||
|
Loading…
Reference in New Issue
Block a user