Index: src/ephy-statusbar.c
===================================================================
--- src/ephy-statusbar.c	(revision 6830)
+++ src/ephy-statusbar.c	(working copy)
@@ -57,7 +57,7 @@ struct _EphyStatusbarPrivate
 
 enum
 {
-	LOCK_CLICKED,
+	ICON_CLICKED,
 	LAST_SIGNAL
 };
 
@@ -92,6 +92,20 @@ ephy_statusbar_get_type (void)
 	return type;
 }
 
+static gboolean
+statusbar_icon_clicked_cb (GtkWidget *widget,
+			   GdkEventButton *event,
+			   EphyStatusbar *statusbar)
+{
+	const char *name;
+	name = g_object_get_data(G_OBJECT(widget), "name");
+	
+	g_print("name:%p ;widget:%p; statusbar:%p\n", name, widget, statusbar);
+	
+	g_signal_emit (statusbar, signals[ICON_CLICKED], 0, name);
+	
+	return TRUE;
+}
 #if !GTK_CHECK_VERSION (2, 11, 0)
 static void
 ephy_statusbar_size_allocate (GtkWidget *widget,
@@ -128,16 +142,16 @@ ephy_statusbar_class_init (EphyStatusbar
 	widget_class->size_allocate = ephy_statusbar_size_allocate;
 #endif
 
-	signals[LOCK_CLICKED] =
+	signals[ICON_CLICKED] =
 		g_signal_new
-			("lock-clicked",
+			("icon-clicked",
 			 EPHY_TYPE_STATUSBAR,
 			 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
-			 G_STRUCT_OFFSET (EphyStatusbarClass, lock_clicked),
+			 G_STRUCT_OFFSET (EphyStatusbarClass, icon_clicked),
 			 NULL, NULL,
-			 g_cclosure_marshal_VOID__VOID,
+			 g_cclosure_marshal_VOID__STRING,
 			 G_TYPE_NONE,
-			 0);
+			 1, G_TYPE_STRING);
 
 	g_type_class_add_private (object_class, sizeof (EphyStatusbarPrivate));
 }
@@ -146,20 +160,20 @@ static void
 create_caret_indicator (EphyStatusbar *statusbar)
 {
 	EphyStatusbarPrivate *priv = statusbar->priv;
-	GtkWidget *label, *ebox;
+	GtkWidget *label, *caret_evbox;
 
-	priv->caret_indicator = ebox = gtk_event_box_new ();
-	gtk_event_box_set_visible_window (GTK_EVENT_BOX (ebox), FALSE);
-	gtk_widget_show (ebox);
+	priv->caret_indicator = caret_evbox = gtk_event_box_new ();
+	gtk_event_box_set_visible_window (GTK_EVENT_BOX (caret_evbox), FALSE);
+	gtk_widget_show (caret_evbox);
 
 	/* Translators: this is displayed in the statusbar; choose a short word
 	 * or even an abbreviation.
 	 */
 	label = gtk_label_new (_("Caret"));
-	gtk_container_add (GTK_CONTAINER (ebox), label);
+	gtk_container_add (GTK_CONTAINER (caret_evbox), label);
 	gtk_widget_show (label);
 
-	gtk_tooltips_set_tip (statusbar->tooltips, ebox,
+	gtk_tooltips_set_tip (statusbar->tooltips, caret_evbox,
 			      /* Translators: this is the tooltip on the "Caret" icon
 			       * in the statusbar.
 			       */
@@ -168,28 +182,11 @@ create_caret_indicator (EphyStatusbar *s
 
 	ephy_statusbar_add_widget (statusbar, priv->caret_indicator);
 }
-
-static gboolean
-padlock_button_press_cb (GtkWidget *ebox,
-                         GdkEventButton *event,
-			 EphyStatusbar *statusbar)
-{
-        if (event->type == GDK_BUTTON_PRESS &&
-	    event->button == 1 /* left */ &&
-	    (event->state & gtk_accelerator_get_default_mod_mask ()) == 0)
-        {
-		g_signal_emit (statusbar, signals[LOCK_CLICKED], 0);
-
-                return TRUE;
-        }
-
-        return FALSE;
-}
-
 static void
 create_icon_frame (EphyStatusbar *statusbar,
 		   const char *stock_id,
 		   GCallback button_press_cb,
+		   char *name,
 		   GtkWidget **_evbox,
 		   GtkWidget **_icon)
 {
@@ -197,11 +194,12 @@ create_icon_frame (EphyStatusbar *status
 
 	evbox = gtk_event_box_new ();
 	gtk_event_box_set_visible_window  (GTK_EVENT_BOX (evbox), FALSE);
-	if (button_press_cb)
+	if (button_press_cb && name)
 	{
 		gtk_widget_add_events (evbox, GDK_BUTTON_PRESS_MASK);
+		g_object_set_data (G_OBJECT (evbox), "name" , name);
 		g_signal_connect (evbox, "button-press-event",
-				  G_CALLBACK (padlock_button_press_cb), statusbar);
+				  G_CALLBACK (button_press_cb), statusbar);
 	}
 
 	icon = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU);
@@ -263,7 +261,8 @@ ephy_statusbar_init (EphyStatusbar *t)
 	/* Create security icon */
 	create_icon_frame (t,
 			   NULL,
-			   G_CALLBACK (padlock_button_press_cb),
+			   G_CALLBACK (statusbar_icon_clicked_cb),
+			   "security", 
 			   &priv->security_evbox,
 			   &priv->security_icon);
 	gtk_widget_show (priv->security_evbox);
@@ -271,7 +270,8 @@ ephy_statusbar_init (EphyStatusbar *t)
 	/* Create popup-blocked icon */
 	create_icon_frame (t,
 			   EPHY_STOCK_POPUPS,
-			   NULL,
+			   G_CALLBACK (statusbar_icon_clicked_cb),
+			   "popups_manager", 
 			   &priv->popups_manager_evbox,
 			   &priv->popups_manager_icon);
 	/* don't show priv->popups_manager_evbox yet */
@@ -442,6 +442,36 @@ ephy_statusbar_add_widget (EphyStatusbar
 			  G_CALLBACK (sync_visibility), vsep);
 }
 
+GtkWidget *
+ephy_statusbar_get_widget (EphyStatusbar *statusbar,
+			  const gchar *name)
+{
+	//g_return_if_fail (EPHY_IS_STATUSBAR (statusbar));
+	//g_return_if_fail (GTK_IS_WIDGET (widget));
+
+	GList *children; 
+	GList *l;
+	gchar *widget_name;
+	children = gtk_container_get_children
+		(GTK_CONTAINER (statusbar->priv->icon_container));
+	for (l = children; l != NULL; l = l->next)
+	{
+		if (GTK_IS_EVENT_BOX (l->data))
+		{
+			widget_name = (gchar *) g_object_get_data(G_OBJECT(l->data), "name");
+			if (widget_name == name)
+			{
+				g_print("%s\n", widget_name);
+				g_list_free(l);
+				return l->data;
+			}
+		}
+	}
+
+	g_list_free(l);
+	return NULL;
+}
+
 /**
  * ephy_statusbar_remove_widget:
  * @statusbar: an #EphyStatusbar
Index: src/ephy-statusbar.h
===================================================================
--- src/ephy-statusbar.h	(revision 6830)
+++ src/ephy-statusbar.h	(working copy)
@@ -35,6 +35,9 @@ G_BEGIN_DECLS
 #define EPHY_IS_STATUSBAR_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), EPHY_TYPE_STATUSBAR))
 #define EPHY_STATUSBAR_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), EPHY_TYPE_STATUSBAR, EphyStatusbarClass))
 
+#define EPHY_STATUSBAR_POPUPS_MANAGER_WIDGET "popups_manager"
+#define EPHY_STATUSBAR_SECURITY_WIDGET "security"
+
 typedef struct _EphyStatusbar		EphyStatusbar;
 typedef struct _EphyStatusbarPrivate	EphyStatusbarPrivate;
 typedef struct _EphyStatusbarClass	EphyStatusbarClass;
@@ -55,7 +58,7 @@ struct _EphyStatusbarClass
         GtkStatusbarClass parent_class;
 
 	/* Signals */
-	void (* lock_clicked)	(EphyStatusbar *statusbar);
+	void (* icon_clicked)	(EphyStatusbar *statusbar, const char *name);
 };
 
 GType         ephy_statusbar_get_type			(void);
@@ -83,6 +86,9 @@ void          ephy_statusbar_set_progres
 void	      ephy_statusbar_add_widget			(EphyStatusbar *statusbar,
 							 GtkWidget *widget);
 
+GtkWidget*	ephy_statusbar_get_widget		(EphyStatusbar *statusbar, 
+							const gchar *name);
+
 void	      ephy_statusbar_remove_widget		(EphyStatusbar *statusbar,
 							 GtkWidget *widget);
 
Index: src/ephy-window.c
===================================================================
--- src/ephy-window.c	(revision 6830)
+++ src/ephy-window.c	(working copy)
@@ -677,12 +677,38 @@ sync_chromes_visibility (EphyWindow *win
 }
 
 static void
+statusbar_icon_clicked_cb (EphyStatusbar *statusbar, 
+			const char *name, 
+			EphyWindowPrivate *priv)
+{
+	GdkEvent *event;
+	
+	event = gtk_get_current_event();
+	
+	g_print("%p; nombre: %s; nombre-widget: %s; event-type: %d\n", statusbar, name, EPHY_STATUSBAR_POPUPS_MANAGER_WIDGET, event->type);
+	
+	if (g_str_equal(name, EPHY_STATUSBAR_POPUPS_MANAGER_WIDGET))
+	{
+		g_print("activando1\n");
+		if (event->type == GDK_2BUTTON_PRESS)
+		{
+			GtkAction *action;
+			action = gtk_action_group_get_action (priv->action_group,
+				"ViewPopupWindows");
+			gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), TRUE);
+			g_print("activando\n");
+		}
+	}
+	
+	gdk_event_free(event);
+}
+
+static void
 ephy_window_fullscreen (EphyWindow *window)
 {
 	EphyWindowPrivate *priv = window->priv;
 	GtkWidget *popup;
 	EphyTab *tab;
-	GtkAction *action;
 	gboolean lockdown_fs;
 
 	priv->fullscreen_mode = TRUE;
@@ -696,9 +722,6 @@ ephy_window_fullscreen (EphyWindow *wind
 	g_signal_connect_swapped (popup, "exit-clicked",
 				  G_CALLBACK (exit_fullscreen_clicked_cb), window);
 
-	action = gtk_action_group_get_action (priv->action_group, "ViewPageSecurityInfo");
-	g_signal_connect_swapped (popup, "lock-clicked",
-				  G_CALLBACK (gtk_action_activate), action);
 
 	/* sync status */
 	tab = ephy_window_get_active_tab (window);
@@ -3229,8 +3252,8 @@ ephy_window_constructor (GType type,
 
 	/* Connect lock clicks */
 	action = gtk_action_group_get_action (priv->action_group, "ViewPageSecurityInfo");
-	g_signal_connect_swapped (priv->statusbar, "lock-clicked",
-				  G_CALLBACK (gtk_action_activate), action);
+	g_signal_connect (priv->statusbar, "icon-clicked",
+				  G_CALLBACK (statusbar_icon_clicked_cb), priv);
 	g_signal_connect_swapped (priv->toolbar, "lock-clicked",
 				  G_CALLBACK (gtk_action_activate), action);
 
