Index: ephy-topic-action.c
===================================================================
RCS file: /cvs/gnome/epiphany/src/bookmarks/ephy-topic-action.c,v
retrieving revision 1.83
diff -u -p -r1.83 ephy-topic-action.c
--- ephy-topic-action.c	13 Sep 2006 11:34:25 -0000	1.83
+++ ephy-topic-action.c	21 Oct 2006 06:13:07 -0000
@@ -350,6 +350,29 @@ button_press_cb (GtkWidget *button,
 	return FALSE;
 }
 
+static gboolean
+button_enter_cb (GtkWidget *button,
+		 GdkEventCrossing *event,
+		 EphyTopicAction *action)
+{
+	static GtkWidget* activated_button = NULL;
+	static EphyTopicAction* activated_action = NULL;
+
+	if (activated_button &&
+	    activated_button != button &&
+	    GTK_IS_TOGGLE_BUTTON(activated_button) &&
+	    gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (activated_button)))
+	{
+		erase_popup(activated_action);
+		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (activated_button), FALSE);
+		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
+	}
+	activated_button = button;
+	activated_action = action;
+
+	return FALSE;
+}
+
 static void
 connect_proxy (GtkAction *action,
 	       GtkWidget *proxy)
@@ -372,6 +395,8 @@ connect_proxy (GtkAction *action,
 				  G_CALLBACK (button_press_cb), action);
 		g_signal_connect (button, "button-release-event",
 				  G_CALLBACK (button_release_cb), action);
+		g_signal_connect (button, "enter-notify-event",
+				  G_CALLBACK (button_enter_cb), action);
 		/* FIXME: what about keyboard (toggled by Space) ? */
 
 		g_signal_connect (button, "drag-data-received",
