diff -u nautilus-2.32.0/debian/changelog nautilus-2.32.0/debian/changelog --- nautilus-2.32.0/debian/changelog +++ nautilus-2.32.0/debian/changelog @@ -1,3 +1,10 @@ +nautilus (1:2.32.0-0ubuntu1.1) maverick-proposed; urgency=low + + * debian/patches/96_git_unmount_crash.patch: backport an upstream commit + to fix nautilus crashing un unmount (lp: #630884) + + -- Sebastien Bacher Fri, 05 Nov 2010 11:09:49 +0100 + nautilus (1:2.32.0-0ubuntu1) maverick; urgency=low * New upstream release: diff -u nautilus-2.32.0/debian/patches/series nautilus-2.32.0/debian/patches/series --- nautilus-2.32.0/debian/patches/series +++ nautilus-2.32.0/debian/patches/series @@ -13,4 +13,5 @@ #91_correct_rgba_use.patch 95_no-initial-fade.patch +96_git_unmount_crash.patch 99_ltmain_as-needed.patch only in patch2: unchanged: --- nautilus-2.32.0.orig/debian/patches/96_git_unmount_crash.patch +++ nautilus-2.32.0/debian/patches/96_git_unmount_crash.patch @@ -0,0 +1,39 @@ +From 1dc416887bf1e88c4b49bd1ac2101e0fb8460af8 Mon Sep 17 00:00:00 2001 +From: Cosimo Cecchi +Date: Tue, 02 Nov 2010 18:01:13 +0000 +Subject: pathbar: fix crasher when unmounting volumes (#627901) + +--- +diff --git a/src/nautilus-pathbar.c b/src/nautilus-pathbar.c +index a9e7adc..24478b9 100644 +--- a/src/nautilus-pathbar.c ++++ b/src/nautilus-pathbar.c +@@ -1571,14 +1571,19 @@ button_data_file_changed (NautilusFile *file, + } else if (nautilus_file_is_gone (file)) { + gint idx, position; + +- /* remove this and the following buttons */ +- position = g_list_position (path_bar->button_list, +- g_list_find (path_bar->button_list, button_data)); +- +- if (position != -1) { +- for (idx = 0; idx <= position; idx++) { +- gtk_container_remove (GTK_CONTAINER (path_bar), +- BUTTON_DATA (path_bar->button_list->data)->button); ++ /* if the current location is gone, don't do anything, as the view ++ * will get the event too and call us back. ++ */ ++ if (nautilus_file_compare_location (file, current_button_data->file) != 0) { ++ /* remove this and the following buttons */ ++ position = g_list_position (path_bar->button_list, ++ g_list_find (path_bar->button_list, button_data)); ++ ++ if (position != -1) { ++ for (idx = 0; idx <= position; idx++) { ++ gtk_container_remove (GTK_CONTAINER (path_bar), ++ BUTTON_DATA (path_bar->button_list->data)->button); ++ } + } + } + +