aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ephy-page-menu-action.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/ephy-page-menu-action.c b/src/ephy-page-menu-action.c
index 05efbdb6d..03e305ea6 100644
--- a/src/ephy-page-menu-action.c
+++ b/src/ephy-page-menu-action.c
@@ -61,13 +61,13 @@ menu_position_func (GtkMenu *menu,
}
static void
-visible_cb (GtkWidget *menu, GParamSpec *pspec, gpointer user_data)
+visible_cb (GtkWidget *menu, GParamSpec *pspec, GtkWidget *button)
{
if (gtk_widget_get_visible (menu))
- gtk_style_context_add_class (gtk_widget_get_style_context (menu),
+ gtk_style_context_add_class (gtk_widget_get_style_context (button),
"active-menu");
else
- gtk_style_context_remove_class (gtk_widget_get_style_context (menu),
+ gtk_style_context_remove_class (gtk_widget_get_style_context (button),
"active-menu");
}
@@ -80,25 +80,25 @@ button_press_cb (GtkWidget *button, GdkEventButton *event, EphyPageMenuAction *a
guint event_button = 1;
guint32 event_time = 0;
+ if (!button) {
+ GSList *l = gtk_action_get_proxies (GTK_ACTION (action));
+ if (GTK_IS_BUTTON (l->data))
+ button = GTK_WIDGET (l->data);
+ }
+
+ g_return_if_fail (GTK_IS_BUTTON (button));
+
if (!action->priv->menu) {
window = ephy_window_action_get_window (EPHY_WINDOW_ACTION (action));
manager = GTK_UI_MANAGER (ephy_window_get_ui_manager (window));
menu = gtk_ui_manager_get_widget (manager, "/ui/PagePopup");
g_signal_connect (menu, "notify::visible",
- G_CALLBACK (visible_cb), NULL);
+ G_CALLBACK (visible_cb), button);
action->priv->menu = g_object_ref (menu);
}
- if (!button) {
- GSList *l = gtk_action_get_proxies (GTK_ACTION (action));
- if (GTK_IS_BUTTON (l->data))
- button = GTK_WIDGET (l->data);
- }
-
- g_return_if_fail (GTK_IS_BUTTON (button));
-
if (event) {
event_button = event->button;
event_time = event->time;