[nautilus-actions] Fix invalid cast from NAObjectItem'



commit c75ad120dbf44788d59ebd68aa3675a4b88ed5d8
Author: Pierre Wieser <pwieser trychlos org>
Date:   Fri Feb 11 12:44:39 2011 +0100

    Fix invalid cast from NAObjectItem'
    
    When inserting a new profile.

 run-distcheck.sh        |    2 ++
 src/nact/nact-menubar.c |   25 ++++++++++++++++---------
 2 files changed, 18 insertions(+), 9 deletions(-)
---
diff --git a/run-distcheck.sh b/run-distcheck.sh
index 58664ae..97ad0c6 100755
--- a/run-distcheck.sh
+++ b/run-distcheck.sh
@@ -1,7 +1,9 @@
 #!/bin/sh
 
 ./run-autogen.sh &&
+make clean &&
 make &&
+make install &&
 ./tools/check-po.sh -nodummy &&
 ./tools/check-headers.sh -nodummy &&
 make distcheck
diff --git a/src/nact/nact-menubar.c b/src/nact/nact-menubar.c
index 5301497..bf5c92b 100644
--- a/src/nact/nact-menubar.c
+++ b/src/nact/nact-menubar.c
@@ -800,22 +800,29 @@ on_tree_view_selection_changed( BaseWindow *window, GList *selected, gpointer us
 	bar->private->are_parents_writable = TRUE;
 	if( selected ){
 		for( is = selected ; is ; is = is->next ){
-			gchar *label = na_object_get_label( is->data );
-			gboolean writable = na_object_is_finally_writable( is->data, NULL );
+			first = ( NAObject * ) is->data;
+			if( NA_IS_OBJECT_PROFILE( is->data )){
+				first = NA_OBJECT( na_object_get_parent( is->data ));
+			}
+			gchar *label = na_object_get_label( first );
+			gboolean writable = na_object_is_finally_writable( first, NULL );
 			g_debug( "%s: label=%s, writable=%s", thisfn, label, writable ? "True":"False" );
-			if( !na_object_is_finally_writable( is->data, NULL )){
+			g_free( label );
+			if( !writable ){
 				bar->private->are_parents_writable = FALSE;
 				break;
 			}
-			first = ( NAObject * ) na_object_get_parent( is->data );
-			if( first ){
-				if( !na_object_is_finally_writable( first, NULL )){
+			if( NA_IS_OBJECT_ITEM( is->data )){
+				first = ( NAObject * ) na_object_get_parent( is->data );
+				if( first ){
+					if( !na_object_is_finally_writable( first, NULL )){
+						bar->private->are_parents_writable = FALSE;
+						break;
+					}
+				} else if( !bar->private->is_level_zero_writable ){
 					bar->private->are_parents_writable = FALSE;
 					break;
 				}
-			} else if( !bar->private->is_level_zero_writable ){
-				bar->private->are_parents_writable = FALSE;
-				break;
 			}
 		}
 	} else {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]