Index: glade-project-window.c
===================================================================
RCS file: /cvs/gnome/glade3/src/glade-project-window.c,v
retrieving revision 1.80
diff -u -r1.80 glade-project-window.c
--- glade-project-window.c	4 Oct 2004 20:18:59 -0000	1.80
+++ glade-project-window.c	7 Oct 2004 18:07:25 -0000
@@ -51,8 +51,8 @@
 {
 	gchar *title;
 
-	if (gpw->project)
-		title = g_strdup_printf ("glade3 - %s", gpw->project->name);
+	if (gpw->active_project)
+		title = g_strdup_printf ("glade3 - %s", gpw->active_project->name);
 	else
 		title = g_strdup_printf ("glade3");
 
@@ -90,7 +90,7 @@
 
 	gpw = glade_project_window_get ();
 
-	if (gpw->project == project)
+	if (gpw->active_project == project)
 		return;
 
 	if (!g_list_find (gpw->projects, project))
@@ -101,10 +101,10 @@
 	}
 
 	/* clear the selection in the previous project */
-	if (gpw->project)
-		glade_project_selection_clear (gpw->project, FALSE);
+	if (gpw->active_project)
+		glade_project_selection_clear (gpw->active_project, FALSE);
 
-	gpw->project = project;
+	gpw->active_project = project;
 	gpw_refresh_title (gpw);
 
 	for (list = gpw->views; list; list = list->next)
@@ -178,7 +178,7 @@
 	const gchar *path = NULL;
 
 	gpw = glade_project_window_get ();
-	project = gpw->project;
+	project = gpw->active_project;
 
 	if (project->path != NULL) {
 		if (glade_project_save (project, project->path)) {
@@ -222,7 +222,7 @@
 	const gchar *path = NULL;
 
 	gpw = glade_project_window_get ();
-	project = gpw->project;
+	project = gpw->active_project;
 
 	filechooser = glade_util_file_chooser_new (_("Save as ..."), GTK_WINDOW (gpw->window),
 						   GTK_FILE_CHOOSER_ACTION_SAVE);
@@ -350,7 +350,7 @@
 	gboolean close;
 	
 	gpw = glade_project_window_get ();
-	project = gpw->project;
+	project = gpw->active_project;
 
 	if (!project)
 		return;
@@ -366,7 +366,7 @@
 
 	/* this is needed to prevent clearing the selection of a closed project 
          */
-	gpw->project = NULL;
+	gpw->active_project = NULL;
 
 	/* If no more projects */
 	if (gpw->projects == NULL)
@@ -423,7 +423,7 @@
 	GList *list;
 
 	gpw = glade_project_window_get ();
-	list = glade_project_selection_get (gpw->project);
+	list = glade_project_selection_get (gpw->active_project);
 	/* TODO: support multiple selected items */
 	if (list != NULL && list->next == NULL)
 	{
@@ -441,7 +441,7 @@
 	GList *list;
 
 	gpw = glade_project_window_get ();
-	list = glade_project_selection_get (gpw->project);
+	list = glade_project_selection_get (gpw->active_project);
 	/* TODO: support multiple selected items */
 	if (list != NULL && list->next == NULL)
 	{
@@ -460,7 +460,7 @@
 
 	gpw = glade_project_window_get ();
 
-	selection = glade_project_selection_get (gpw->project);
+	selection = glade_project_selection_get (gpw->active_project);
 	if (selection != NULL && selection->next == NULL && GLADE_IS_PLACEHOLDER (selection->data))
 		glade_command_paste (GLADE_PLACEHOLDER (selection->data));
 }
@@ -471,16 +471,15 @@
 	GladeProjectWindow *gpw;
 
 	gpw = glade_project_window_get ();
-	if (!gpw->project)
+	if (!gpw->active_project)
 	{
 		g_warning ("delete should not be sensitive: we don't have a project");
 		return;
 	}
 
 	/* glade_util_delete_selection performs a glade_command_delete
-	 * on each of the selected widgets 
-         */
-	glade_util_delete_selection (gpw->project);
+	 * on each of the selected widgets */
+	glade_util_delete_selection (gpw->active_project);
 }
 
 static void
@@ -489,13 +488,13 @@
 	GladeProjectWindow *gpw;
 
 	gpw = glade_project_window_get ();
-	if (!gpw->project)
+	if (!gpw->active_project)
 	{
 		g_warning ("undo should not be sensitive: we don't have a project");
 		return;
 	}
 
-	glade_command_undo (gpw->project);
+	glade_command_undo (gpw->active_project);
 
 	glade_project_window_refresh_undo_redo ();
 }
@@ -506,13 +505,13 @@
 	GladeProjectWindow *gpw;
 
 	gpw = glade_project_window_get ();
-	if (!gpw->project)
+	if (!gpw->active_project)
 	{
 		g_warning ("redo should not be sensitive: we don't have a project");
 		return;
 	}
 
-	glade_command_redo (gpw->project);
+	glade_command_redo (gpw->active_project);
 
 	glade_project_window_refresh_undo_redo ();
 }
@@ -544,9 +543,9 @@
 	class = palette->current;
 
 	/* class may be NULL if the selector was pressed */
-	if (class && GLADE_WIDGET_CLASS_TOPLEVEL (class))
+	if (class && g_type_is_a (class->type, GTK_TYPE_WINDOW))
 	{
-		glade_command_create (class, NULL, gpw->project);
+		glade_command_create (class, NULL, gpw->active_project);
 		gpw->add_class = NULL;
 	}
 	else
@@ -720,7 +719,7 @@
 
 	view = glade_project_view_new (GLADE_PROJECT_VIEW_TREE);
 	gpw->views = g_list_prepend (gpw->views, view);
-	glade_project_view_set_project (view, gpw->project);
+	glade_project_view_set_project (view, gpw->active_project);
 
 	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (view),
 					GTK_POLICY_NEVER, GTK_POLICY_NEVER);
@@ -1140,8 +1139,10 @@
 
 	statusbar = gtk_statusbar_new ();
 	gpw->statusbar = statusbar;
-	gpw->statusbar_menu_context_id = gtk_statusbar_get_context_id (GTK_STATUSBAR (statusbar), "menu");
-	gpw->statusbar_actions_context_id = gtk_statusbar_get_context_id (GTK_STATUSBAR (statusbar), "actions");
+	gpw->statusbar_menu_context_id =
+		gtk_statusbar_get_context_id (GTK_STATUSBAR (statusbar), "menu");
+	gpw->statusbar_actions_context_id =
+		gtk_statusbar_get_context_id (GTK_STATUSBAR (statusbar), "actions");
 
 	return statusbar;
 }
@@ -1302,7 +1303,7 @@
 	g_return_if_fail (GLADE_IS_PROJECT (project));
 	g_return_if_fail (GLADE_IS_PROJECT_WINDOW (gpw));
 
-	if (gpw->project != project)
+	if (gpw->active_project != project)
 	{
 		glade_project_window_set_project (project);
 		return;
@@ -1313,7 +1314,9 @@
 		list = glade_project_selection_get (project);
 		num = g_list_length (list);
 		if (num == 1 && !GLADE_IS_PLACEHOLDER (list->data))
-			glade_editor_load_widget (gpw->editor, glade_widget_get_from_gtk_widget (GTK_WIDGET (list->data)));
+			glade_editor_load_widget (gpw->editor,
+						  glade_widget_get_from_gtk_widget
+						  (GTK_WIDGET (list->data)));
 		else
 			glade_editor_load_widget (gpw->editor, NULL);
 	}
@@ -1487,7 +1490,7 @@
 
 	gpw = glade_project_window_get ();
 
-	project = gpw->project;
+	project = gpw->active_project;
 	if (!project)
 	{
 		undo_item = NULL;
@@ -1527,3 +1530,9 @@
 	gpw_show_palette (gpw);
 	gpw_show_editor (gpw);
 }
+
+GladeProject *
+glade_project_window_get_active_project (GladeProjectWindow *gpw)
+{
+	return gpw->active_project;
+}
