Index: src/ephy-statusbar.c
===================================================================
--- src/ephy-statusbar.c	(revision 7812)
+++ src/ephy-statusbar.c	(working copy)
@@ -56,6 +56,7 @@ struct _EphyStatusbarPrivate
 enum
 {
 	LOCK_CLICKED,
+	POPUPS_CLICKED,
 	LAST_SIGNAL
 };
 
@@ -107,6 +108,17 @@ ephy_statusbar_class_init (EphyStatusbar
 			 g_cclosure_marshal_VOID__VOID,
 			 G_TYPE_NONE,
 			 0);
+	
+	signals[POPUPS_CLICKED] =
+		g_signal_new
+			("popups-clicked",
+			 EPHY_TYPE_STATUSBAR,
+			 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+			 G_STRUCT_OFFSET (EphyStatusbarClass, popups_clicked),
+			 NULL, NULL,
+			 g_cclosure_marshal_VOID__VOID,
+			 G_TYPE_NONE,
+			 0);
 
 	g_type_class_add_private (object_class, sizeof (EphyStatusbarPrivate));
 }
@@ -146,6 +158,16 @@ padlock_button_press_cb (GtkWidget *ebox
         return FALSE;
 }
 
+static gboolean
+popups_button_press_cb (GtkWidget *widget,
+			   GdkEventButton *event,
+			   EphyStatusbar *statusbar)
+{
+	g_signal_emit (statusbar, signals[POPUPS_CLICKED], 0);
+	
+	return TRUE;
+}
+
 static void
 create_icon_frame (EphyStatusbar *statusbar,
 		   const char *stock_id,
@@ -238,6 +260,9 @@ ephy_statusbar_init (EphyStatusbar *t)
 			   &priv->popups_manager_evbox,
 			   &priv->popups_manager_icon);
 	/* don't show priv->popups_manager_evbox yet */
+	
+	g_signal_connect (priv->popups_manager_evbox, "button-press-event",
+			  G_CALLBACK (popups_button_press_cb), t);
 
 	create_caret_indicator (t);
 	create_statusbar_progress (t);
Index: src/ephy-statusbar.h
===================================================================
--- src/ephy-statusbar.h	(revision 7812)
+++ src/ephy-statusbar.h	(working copy)
@@ -52,6 +52,7 @@ struct _EphyStatusbarClass
 
 	/* Signals */
 	void (* lock_clicked)	(EphyStatusbar *statusbar);
+	void (* popups_clicked)	(EphyStatusbar *statusbar);
 };
 
 GType         ephy_statusbar_get_type			(void);
Index: src/ephy-window.c
===================================================================
--- src/ephy-window.c	(revision 7812)
+++ src/ephy-window.c	(working copy)
@@ -3244,6 +3244,34 @@ find_toolbar_close_cb (EphyFindToolbar *
 }
 
 static void
+popups_button_press_cb (EphyStatusbar *statusbar, 
+			EphyWindowPrivate *priv)
+{
+	GdkEvent *event;
+	GtkAction *action;
+	
+	event = gtk_get_current_event ();
+
+	if (event->type == GDK_2BUTTON_PRESS)
+	{
+		GtkWidget *menu;
+		GtkWidget *menuitem;
+		
+		/* placeholder */
+		menu = gtk_menu_new ();
+		menuitem = gtk_menu_item_new_with_label ("Show popup window #1");
+		gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menuitem);
+		
+		gtk_widget_show_all (menu);
+		gtk_widget_show_all (menuitem);
+		
+		gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 0, gtk_get_current_event_time ());
+	}
+
+	gdk_event_free(event);
+}
+
+static void
 cancel_handler (gpointer idptr)
 {
 	guint id = GPOINTER_TO_UINT (idptr);
@@ -3422,6 +3450,9 @@ ephy_window_constructor (GType type,
 				  G_CALLBACK (gtk_action_activate), action);
 	g_signal_connect_swapped (priv->toolbar, "lock-clicked",
 				  G_CALLBACK (gtk_action_activate), action);
+	
+	g_signal_connect_swapped (priv->statusbar, "popups-clicked",
+				  G_CALLBACK (popups_button_press_cb), priv);
 
 	/* ensure the UI is updated */
 	gtk_ui_manager_ensure_update (priv->manager);
