--- /oldsrc/pkgsummon-core-cc.c 2004-03-17 14:50:53.000000000 +0100 +++ /src/pkgsummon-core-cc.c 2004-04-01 02:45:13.000000000 +0200 @@ -29,7 +29,7 @@ "pkgsummon-package", LOCALPKGLIST_COL_NAME , long_name , -1 ); localpkgtable.counter++; - gtk_progress_bar_set_fraction( PKGsummon.container1 , + gtk_progress_bar_set_fraction( g_object_get_data( G_OBJECT(store) , "pbs" ) , ( (gdouble)localpkgtable.counter / (gdouble)localpkgtable.total ) ); while (g_main_context_iteration(NULL, FALSE)); } @@ -41,6 +41,7 @@ localpkgtable.counter = 0; controlcenterStore = gtk_list_store_new( LOCALPKGLIST_COL_NUM , G_TYPE_STRING , G_TYPE_STRING ); + g_object_set_data( G_OBJECT(controlcenterStore) , "pbs" , g_object_get_data( G_OBJECT(listview) , "pbw" ) ); g_hash_table_foreach( localpkgtable.hashtable , pkg_controlcenter_store_process , controlcenterStore ); controlcenterSortable = GTK_TREE_SORTABLE(controlcenterStore); gtk_tree_sortable_set_sort_column_id( controlcenterSortable , LOCALPKGLIST_COL_NAME , GTK_SORT_ASCENDING ); --- /oldsrc/pkgsummon-interface-cc.c 2004-03-17 17:16:17.000000000 +0100 +++ /src/pkgsummon-interface-cc.c 2004-04-01 02:47:25.000000000 +0200 @@ -26,7 +26,7 @@ GtkWidget *controlcenterWin, *controlcenterScrollwin1, *controlcenterScrollwin2, *controlcenterTree, *controlcenterProgress; GtkWidget *controlcenterHPaned, *controlcenterVBoxleft, *controlcenterVBoxright; GtkWidget *controlcenterHBoxpkgbuttons, *controlcenterHBoxsearch; - GtkWidget *controlcenterTextview, *controlcenterEntry, *controlcenterPointers[2]; + GtkWidget *controlcenterTextview, *controlcenterEntry, *controlcenterPointers[3]; GtkWidget *controlcenterButtonOk; @@ -65,8 +65,6 @@ gtk_container_add( GTK_CONTAINER(controlcenterScrollwin1) , controlcenterTree ); controlcenterProgress = gtk_progress_bar_new(); - /* We use one of the special pointer containers available in PKGsummon structure */ - PKGsummon.container1 = controlcenterProgress; controlcenterTextview = gtk_text_view_new(); gtk_text_view_set_editable( GTK_TEXT_VIEW(controlcenterTextview) , FALSE ); @@ -100,13 +98,20 @@ gtk_paned_pack2( GTK_PANED(controlcenterHPaned) , controlcenterVBoxright , FALSE , FALSE ); gtk_box_pack_start( GTK_BOX(GTK_DIALOG(controlcenterWin)->vbox) , controlcenterHPaned , TRUE , TRUE , 0 ); - controlcenterPointers[0] = controlcenterTree; controlcenterPointers[1] = controlcenterEntry; + g_object_set_data( G_OBJECT(controlcenterWin) , "ac" , GINT_TO_POINTER(0) ); + g_object_set_data( G_OBJECT(controlcenterTree) , "pbw" , controlcenterProgress ); + + controlcenterPointers[0] = controlcenterTree; + controlcenterPointers[1] = controlcenterEntry; + controlcenterPointers[2] = controlcenterWin; + g_signal_connect_swapped(G_OBJECT(controlcenterWin) , "show" , G_CALLBACK(pkg_event_controlcenter_show), controlcenterPointers ); g_signal_connect_swapped(G_OBJECT(controlcenterWin), "delete-event" , - G_CALLBACK(pkg_event_controlcenter_delete), controlcenterProgress ); + G_CALLBACK(pkg_event_controlcenter_delete), controlcenterWin ); g_signal_connect_swapped(G_OBJECT(controlcenterButtonOk), "clicked" , - G_CALLBACK(pkg_event_controlcenter_clickok), controlcenterProgress ); + G_CALLBACK(pkg_event_controlcenter_clickok), controlcenterWin ); + g_signal_connect( controlcenterEntry , "changed" , G_CALLBACK(pkg_event_controlcenter_search), controlcenterTree ); --- /oldsrc/pkgsummon-callbacks-cc.c 2004-03-17 14:50:32.000000000 +0100 +++ /src/pkgsummon-callbacks-cc.c 2004-04-01 02:45:47.000000000 +0200 @@ -68,14 +68,10 @@ } } -void pkg_event_controlcenter_clickok( gpointer progressbar ) +void pkg_event_controlcenter_clickok( gpointer ccwindow ) { - if ( pkg_event_controlcenter_delete( progressbar ) == FALSE ) - { - GtkWindow *parent = GTK_WINDOW(gtk_widget_get_parent( gtk_widget_get_parent( - gtk_widget_get_parent( gtk_widget_get_parent( progressbar ) ) ) )); - gtk_widget_destroy( GTK_WIDGET(parent) ); - } + if ( GPOINTER_TO_INT(g_object_get_data( G_OBJECT(ccwindow) , "ac" )) ) + gtk_widget_destroy( GTK_WIDGET(ccwindow) ); } void pkg_event_controlcenter_show( gpointer arraypointers[] ) @@ -83,11 +79,14 @@ pkg_controlcenter_store_init( arraypointers[0] ); gtk_widget_set_sensitive( arraypointers[1] , TRUE ); gtk_widget_grab_focus( arraypointers[1] ); + + /* Ok, everything done so let's enable window closing now */ + g_object_set_data( G_OBJECT(arraypointers[2]) , "ac" , GINT_TO_POINTER(1) ); } -gboolean pkg_event_controlcenter_delete( gpointer progressbar ) +gboolean pkg_event_controlcenter_delete( gpointer ccwindow ) { /* We won't destroy the window until package loading in list has been completed */ - if ( gtk_progress_bar_get_fraction(GTK_PROGRESS_BAR(progressbar)) < 1 ) { return TRUE; } + if ( !GPOINTER_TO_INT(g_object_get_data( G_OBJECT(ccwindow) , "ac" )) ) { return TRUE; } else { return FALSE; } } --- /oldsrc/pkgsummon.h 2004-03-25 13:43:51.000000000 +0100 +++ /src/pkgsummon.h 2004-04-01 02:59:32.000000000 +0200 @@ -29,7 +29,7 @@ #define PKGSUMMON_CONFIG_FILENAME "/.pkgsummongtk" -#define PKGSUMMON_VERSION "0.6" +#define PKGSUMMON_VERSION "0.6p1" #define PKG_INDENT_FACTOR 2.5 void pkg_event_main_destroy( GtkObject* );