summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@gentoo.org>2009-12-30 00:11:42 +0000
committerNirbheek Chauhan <nirbheek@gentoo.org>2009-12-30 00:11:42 +0000
commitfa25d3f1d0646363c769a716da8cdc18e6eb4cf7 (patch)
treeb4b1276dfcd8996018beae002112515030aa4870 /gnome-base/nautilus
parentSet PYTHON_MODNAME. (diff)
downloadgentoo-2-fa25d3f1d0646363c769a716da8cdc18e6eb4cf7.tar.gz
gentoo-2-fa25d3f1d0646363c769a716da8cdc18e6eb4cf7.tar.bz2
gentoo-2-fa25d3f1d0646363c769a716da8cdc18e6eb4cf7.zip
Fix nautilus window closing when doing DnD from file-roller, bug 290001
(Portage version: 2.1.7.16/cvs/Linux i686)
Diffstat (limited to 'gnome-base/nautilus')
-rw-r--r--gnome-base/nautilus/ChangeLog9
-rw-r--r--gnome-base/nautilus/files/nautilus-2.26.4-file-roller-drag-n-drop.patch103
-rw-r--r--gnome-base/nautilus/nautilus-2.26.4-r1.ebuild100
3 files changed, 211 insertions, 1 deletions
diff --git a/gnome-base/nautilus/ChangeLog b/gnome-base/nautilus/ChangeLog
index b2fa5254919c..ae951c2f0a74 100644
--- a/gnome-base/nautilus/ChangeLog
+++ b/gnome-base/nautilus/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for gnome-base/nautilus
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/nautilus/ChangeLog,v 1.329 2009/12/17 23:26:33 eva Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/nautilus/ChangeLog,v 1.330 2009/12/30 00:11:41 nirbheek Exp $
+
+*nautilus-2.26.4-r1 (30 Dec 2009)
+
+ 30 Dec 2009; Nirbheek Chauhan <nirbheek@gentoo.org>
+ +nautilus-2.26.4-r1.ebuild,
+ +files/nautilus-2.26.4-file-roller-drag-n-drop.patch:
+ Fix nautilus window closing when doing DnD from file-roller, bug 290001
*nautilus-2.28.4 (17 Dec 2009)
diff --git a/gnome-base/nautilus/files/nautilus-2.26.4-file-roller-drag-n-drop.patch b/gnome-base/nautilus/files/nautilus-2.26.4-file-roller-drag-n-drop.patch
new file mode 100644
index 000000000000..28d637ca5181
--- /dev/null
+++ b/gnome-base/nautilus/files/nautilus-2.26.4-file-roller-drag-n-drop.patch
@@ -0,0 +1,103 @@
+Fixes nautilus window closing when doing DnD from file-roller.
+Patch is taken from upstream git
+
+http://bugs.gentoo.org/show_bug.cgi?id=290001
+
+---
+From 23278532505862816bd5c8c0ab7d17f7a07b4790 Mon Sep 17 00:00:00 2001
+From: Cosimo Cecchi <cosimoc@gnome.org>
+Date: Fri, 09 Oct 2009 17:19:42 +0000
+Subject: Always check if the drag dest supports the source.
+
+In the "drag-motion" callback, make sure we check for target != GDK_NONE
+before getting non-existent data for it.
+---
+diff --git a/libnautilus-private/nautilus-dnd.c b/libnautilus-private/nautilus-dnd.c
+index b7e1df2..15b6395 100644
+--- a/libnautilus-private/nautilus-dnd.c
++++ b/libnautilus-private/nautilus-dnd.c
+@@ -1010,7 +1010,7 @@ nautilus_drag_selection_includes_special_link (GList *selection_list)
+ return FALSE;
+ }
+
+-static void
++static gboolean
+ slot_proxy_drag_motion (GtkWidget *widget,
+ GdkDragContext *context,
+ int x,
+@@ -1038,6 +1038,11 @@ slot_proxy_drag_motion (GtkWidget *widget,
+
+ if (!drag_info->have_data) {
+ target = gtk_drag_dest_find_target (widget, context, NULL);
++
++ if (target == GDK_NONE) {
++ goto out;
++ }
++
+ gtk_drag_get_data (widget, context, target, time);
+ }
+
+@@ -1079,6 +1084,8 @@ out:
+ }
+
+ gdk_drag_status (context, action, time);
++
++ return TRUE;
+ }
+
+ static void
+diff --git a/src/nautilus-places-sidebar.c b/src/nautilus-places-sidebar.c
+index 1d07bba..9a87322 100644
+--- a/src/nautilus-places-sidebar.c
++++ b/src/nautilus-places-sidebar.c
+@@ -850,7 +850,7 @@ compute_drop_position (GtkTreeView *tree_view,
+ }
+
+
+-static void
++static gboolean
+ get_drag_data (GtkTreeView *tree_view,
+ GdkDragContext *context,
+ unsigned int time)
+@@ -861,8 +861,14 @@ get_drag_data (GtkTreeView *tree_view,
+ context,
+ NULL);
+
++ if (target == GDK_NONE) {
++ return FALSE;
++ }
++
+ gtk_drag_get_data (GTK_WIDGET (tree_view),
+ context, target, time);
++
++ return TRUE;
+ }
+
+ static void
+@@ -928,7 +934,9 @@ drag_motion_callback (GtkTreeView *tree_view,
+ char *uri;
+
+ if (!sidebar->drag_data_received) {
+- get_drag_data (tree_view, context, time);
++ if (!get_drag_data (tree_view, context, time)) {
++ return FALSE;
++ }
+ }
+
+ compute_drop_position (tree_view, x, y, &path, &pos, sidebar);
+@@ -1269,10 +1277,11 @@ drag_drop_callback (GtkTreeView *tree_view,
+ unsigned int time,
+ NautilusPlacesSidebar *sidebar)
+ {
++ gboolean retval = FALSE;
+ sidebar->drop_occured = TRUE;
+- get_drag_data (tree_view, context, time);
++ retval = get_drag_data (tree_view, context, time);
+ g_signal_stop_emission_by_name (tree_view, "drag-drop");
+- return TRUE;
++ return retval;
+ }
+
+ /* Callback used when the file list's popup menu is detached */
+--
+cgit v0.8.2
diff --git a/gnome-base/nautilus/nautilus-2.26.4-r1.ebuild b/gnome-base/nautilus/nautilus-2.26.4-r1.ebuild
new file mode 100644
index 000000000000..e8d8843823f5
--- /dev/null
+++ b/gnome-base/nautilus/nautilus-2.26.4-r1.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/nautilus/nautilus-2.26.4-r1.ebuild,v 1.1 2009/12/30 00:11:41 nirbheek Exp $
+
+EAPI="2"
+
+inherit gnome2 eutils virtualx
+
+DESCRIPTION="A file manager for the GNOME desktop"
+HOMEPAGE="http://www.gnome.org/projects/nautilus/"
+
+LICENSE="GPL-2 LGPL-2 FDL-1.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="beagle doc gnome tracker xmp"
+
+# not adding gnome-base/gail because it is in gtk+
+RDEPEND=">=dev-libs/glib-2.19.0
+ >=gnome-base/gnome-desktop-2.25.5
+ >=x11-libs/pango-1.1.2
+ >=x11-libs/gtk+-2.16.0
+ >=dev-libs/libxml2-2.4.7
+ >=media-libs/libexif-0.5.12
+ >=gnome-base/gconf-2.0
+ >=gnome-base/gvfs-0.1.2
+ dev-libs/libunique
+ dev-libs/dbus-glib
+ x11-libs/libXft
+ x11-libs/libXrender
+ beagle? ( || (
+ dev-libs/libbeagle
+ =app-misc/beagle-0.2* ) )
+ tracker? ( >=app-misc/tracker-0.6.4 )
+ xmp? ( >=media-libs/exempi-2 )"
+
+DEPEND="${RDEPEND}
+ >=dev-lang/perl-5
+ sys-devel/gettext
+ >=dev-util/pkgconfig-0.9
+ >=dev-util/intltool-0.40.1
+ doc? ( >=dev-util/gtk-doc-1.4 )
+ gnome-base/gnome-common
+ dev-util/gtk-doc-am"
+
+PDEPEND="gnome? ( >=x11-themes/gnome-icon-theme-1.1.91 )"
+
+DOCS="AUTHORS ChangeLog* HACKING MAINTAINERS NEWS README THANKS TODO"
+
+pkg_setup() {
+ G2CONF="${G2CONF}
+ --disable-update-mimedb
+ --disable-packagekit
+ $(use_enable beagle)
+ $(use_enable tracker)
+ $(use_enable xmp)"
+}
+
+src_prepare() {
+ gnome2_src_prepare
+
+ # FIXME: tarball generated with broken gtk-doc, revisit me.
+ if use doc; then
+ sed "/^TARGET_DIR/i \GTKDOC_REBASE=/usr/bin/gtkdoc-rebase" \
+ -i gtk-doc.make || die "sed 1 failed"
+ else
+ sed "/^TARGET_DIR/i \GTKDOC_REBASE=/bin/true" \
+ -i gtk-doc.make || die "sed 2 failed"
+ fi
+
+ # gtk-doc-am and gnome-common needed for this
+
+ # Fix intltoolize broken file, see upstream #577133
+ sed "s:'\^\$\$lang\$\$':\^\$\$lang\$\$:g" -i po/Makefile.in.in || die "sed failed"
+
+ # Fix nautilus flipping-out with --no-desktop -- bug 266398
+ epatch "${FILESDIR}/${PN}-2.26.2-change-reg-desktop-file-with-no-desktop.patch"
+
+ # Fix massive memory consumption by Nautilus for larger zoom levels.
+ # Import from upstream, see distributor mailing lists.
+ epatch "${FILESDIR}/${PN}-2.26.3-thumbnail-zoom-level.patch"
+
+ # Fix nautilus window closing when doing DnD from file-roller, bug 290001
+ epatch "${FILESDIR}/${P}-file-roller-drag-n-drop.patch"
+}
+
+src_test() {
+ addwrite "/root/.gnome2_private"
+ unset SESSION_MANAGER
+ unset ORBIT_SOCKETDIR
+ unset DBUS_SESSION_BUS_ADDRESS
+ Xemake check || die "Test phase failed"
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+
+ elog "nautilus can use gstreamer to preview audio files. Just make sure"
+ elog "to have the necessary plugins available to play the media type you"
+ elog "want to preview"
+}