Index: ephy-history-window.c
===================================================================
RCS file: /cvs/gnome/epiphany/src/ephy-history-window.c,v
retrieving revision 1.65
diff -u -p -r1.65 ephy-history-window.c
--- ephy-history-window.c	25 Jan 2004 20:09:19 -0000	1.65
+++ ephy-history-window.c	28 Jan 2004 14:23:38 -0000
@@ -39,6 +39,7 @@
 #include <time.h>
 
 #include "ephy-node-view.h"
+#include "ephy-node-common.h"
 #include "ephy-window.h"
 #include "ephy-history-window.h"
 #include "ephy-shell.h"
@@ -494,6 +495,36 @@ cmd_delete (GtkAction *action,
 	{
 		ephy_node_view_remove (EPHY_NODE_VIEW (editor->priv->pages_view));
 	}
+	else if (ephy_node_view_is_target (EPHY_NODE_VIEW (editor->priv->sites_view)))
+	{
+		GList *selected;
+		EphyNode *host, *site;
+		EphyNodePriority priority;
+		GPtrArray *children;
+		int i;
+
+		selected = ephy_node_view_get_selection (EPHY_NODE_VIEW (editor->priv->sites_view));
+		g_return_if_fail (selected != NULL);
+		host = (EphyNode *) selected->data;
+		ephy_node_ref (host);
+		g_list_free (selected);
+
+		priority = ephy_node_get_property_int (host, EPHY_NODE_KEYWORD_PROP_PRIORITY);
+
+		if (priority == -1) priority = EPHY_NODE_NORMAL_PRIORITY;
+
+		if (priority != EPHY_NODE_NORMAL_PRIORITY) return;
+
+		children = ephy_node_get_children (host);
+		for (i = children->len -1; i >= 0; i--)
+		{
+			site = g_ptr_array_index (children, i);
+
+			ephy_node_unref (site);
+		}
+
+		ephy_node_unref (host);
+	}
 }
 
 static void
@@ -1279,6 +1310,10 @@ ephy_history_window_construct (EphyHisto
 			  "node_selected",
 			  G_CALLBACK (site_node_selected_cb),
 			  editor);
+	g_signal_connect (G_OBJECT (sites_view),
+			  "key_press_event",
+			  G_CALLBACK (key_pressed_cb),
+			  editor);
 	g_signal_connect (G_OBJECT (selection),
 			  "changed",
 			  G_CALLBACK (view_selection_changed_cb),
