From c6debbe3be7d73d63feb45fd8bfc35e2bbe35827 Mon Sep 17 00:00:00 2001
From: Danny Auble <da@llnl.gov>
Date: Fri, 28 May 2010 18:25:35 +0000
Subject: [PATCH] fixed it so the node tab changes

---
 src/sview/common.c |  1 +
 src/sview/sview.c  | 74 ++++++++++++++++++++++++++++------------------
 2 files changed, 46 insertions(+), 29 deletions(-)

diff --git a/src/sview/common.c b/src/sview/common.c
index fc07098fd81..4ba2b1444e6 100644
--- a/src/sview/common.c
+++ b/src/sview/common.c
@@ -714,6 +714,7 @@ extern void create_page(GtkNotebook *notebook, display_data_t *display_data)
 
 	gtk_table_attach_defaults(GTK_TABLE(table), event_box, 0, 1, 0, 1);
 	gtk_table_attach_defaults(GTK_TABLE(table), close_button, 2, 3, 0, 1);
+	gtk_container_set_focus_child(GTK_CONTAINER(table), label);
 
 	gtk_widget_show_all(table);
 	//(display_data->set_fields)(GTK_MENU(menu));
diff --git a/src/sview/sview.c b/src/sview/sview.c
index 9a4b4faedac..2c04c9b0bf3 100644
--- a/src/sview/sview.c
+++ b/src/sview/sview.c
@@ -504,7 +504,7 @@ static char *_get_ui_description()
 		"    <menu action='options'>"
 		"      <menuitem action='grid'/>"
 		"      <menuitem action='hidden'/>");
-	if(cluster_flags & CLUSTER_FLAG_BG)
+	if(!(cluster_flags & CLUSTER_FLAG_BG))
 		xstrcat(ui_description,
 			"      <menuitem action='grid_specs'/>");
 
@@ -805,6 +805,7 @@ extern void _change_cluster_main(GtkComboBox *combo, gpointer extra)
 	slurmdb_cluster_rec_t *cluster_rec = NULL;
 	char *tmp, *ui_description;
 	GError *error = NULL;
+	GtkWidget *node_tab = NULL;
 
 	if(!gtk_combo_box_get_active_iter(combo, &iter)) {
 		g_print("nothing selected\n");
@@ -831,34 +832,6 @@ extern void _change_cluster_main(GtkComboBox *combo, gpointer extra)
 	/* 		return; */
 	/* } */
 
-	display_data = main_display_data;
-	while(display_data++) {
-		if(display_data->id == -1)
-			break;
-		if(cluster_flags & CLUSTER_FLAG_BG) {
-			switch(display_data->id) {
-			case BLOCK_PAGE:
-				display_data->show = TRUE;
-				break;
-			case NODE_PAGE:
-				display_data->name = "Base Partitions";
-				break;
-			default:
-				break;
-			}
-		} else {
-			switch(display_data->id) {
-			case BLOCK_PAGE:
-				display_data->show = FALSE;
-				break;
-			case NODE_PAGE:
-				display_data->name = "Nodes";
-				break;
-			default:
-				break;
-			}
-		}
-	}
 	/* free old info under last cluster */
 	slurm_free_block_info_msg(g_block_info_ptr);
 	g_block_info_ptr = NULL;
@@ -891,6 +864,35 @@ extern void _change_cluster_main(GtkComboBox *combo, gpointer extra)
 	cluster_dims = slurmdb_setup_cluster_dims();
 	cluster_flags = slurmdb_setup_cluster_flags();
 
+	display_data = main_display_data;
+	while(display_data++) {
+		if(display_data->id == -1)
+			break;
+		if(cluster_flags & CLUSTER_FLAG_BG) {
+			switch(display_data->id) {
+			case BLOCK_PAGE:
+				display_data->show = TRUE;
+				break;
+			case NODE_PAGE:
+				display_data->name = "Base Partitions";
+				break;
+			default:
+				break;
+			}
+		} else {
+			switch(display_data->id) {
+			case BLOCK_PAGE:
+				display_data->show = FALSE;
+				break;
+			case NODE_PAGE:
+				display_data->name = "Nodes";
+				break;
+			default:
+				break;
+			}
+		}
+	}
+
 	/* set up menu */
 	ui_description = _get_ui_description();
 	gtk_ui_manager_remove_ui(g_ui_manager, g_menu_id);
@@ -923,6 +925,20 @@ extern void _change_cluster_main(GtkComboBox *combo, gpointer extra)
 	if(signal_params_list)
 		list_flush(signal_params_list);
 
+	/* change the node tab name if needed */
+	node_tab = gtk_notebook_get_nth_page(
+		GTK_NOTEBOOK(main_notebook), NODE_PAGE);
+	node_tab = gtk_notebook_get_tab_label(GTK_NOTEBOOK(main_notebook),
+					      node_tab);
+	/* ok, now we have a table which we have set up to contain an
+	 * event_box which contains the label we are interested.  We
+	 * setup this label to be the focus child of the table, so all
+	 * we have to do is grab that and we are set. */
+	node_tab = gtk_container_get_focus_child(GTK_CONTAINER(node_tab));
+
+	if(node_tab)
+		gtk_label_set_text(GTK_LABEL(node_tab),
+				   main_display_data[NODE_PAGE].name);
 	/* reinit */
 	get_system_stats(main_grid_table);
 
-- 
GitLab