action->priv->history = history;
g_object_add_weak_pointer (G_OBJECT (action->priv->history),
- (gpointer *) &action->priv->history);
+ (gpointer) &action->priv->history);
}
static void
g_return_if_fail (EV_IS_HISTORY (action->priv->history));
index = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "index"));
- ev_history_set_current_index (action->priv->history, index);
if (action->priv->history) {
EvLink *link;
title = ev_link_get_title (link);
item = gtk_image_menu_item_new_with_label (title);
+ gtk_label_set_use_markup (GTK_LABEL (gtk_bin_get_child (GTK_BIN (item))), TRUE);
g_object_set_data (G_OBJECT (item), "index",
GINT_TO_POINTER (index));
return GTK_WIDGET (menu);
}
- start = MAX (ev_history_get_current_index (action->priv->history) - 5, 0);
- end = MIN (ev_history_get_n_links (history), start + 7);
+ start = 0;
+ end = ev_history_get_n_links (history);
for (i = start; i < end; i++) {
link = ev_history_get_link_nth (history, i);
{
GtkWidget *menu;
- /* set dummy menu so the arrow gets sensitive */
- menu = gtk_menu_new ();
- ev_navigation_action_widget_set_menu (EV_NAVIGATION_ACTION_WIDGET (proxy), menu);
+ if (GTK_IS_TOOL_ITEM (proxy)) {
+ /* set dummy menu so the arrow gets sensitive */
+ menu = gtk_menu_new ();
+ ev_navigation_action_widget_set_menu (EV_NAVIGATION_ACTION_WIDGET (proxy), menu);
- g_signal_connect (proxy, "show-menu",
- G_CALLBACK (menu_activated_cb), action);
+ g_signal_connect (proxy, "show-menu",
+ G_CALLBACK (menu_activated_cb), action);
+ }
GTK_ACTION_CLASS (ev_navigation_action_parent_class)->connect_proxy (action, proxy);
}
return GTK_WIDGET (proxy);
}
+static GtkWidget *
+create_menu_item (GtkAction *action)
+{
+ GtkWidget *menu;
+ GtkWidget *menu_item;
+
+ menu = build_menu (EV_NAVIGATION_ACTION (action));
+
+ menu_item = GTK_ACTION_CLASS (ev_navigation_action_parent_class)->create_menu_item (action);
+
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), menu);
+
+ gtk_widget_show (menu_item);
+
+ return menu_item;
+}
+
static void
ev_navigation_action_init (EvNavigationAction *action)
{
if (action->priv->history) {
g_object_add_weak_pointer (G_OBJECT (action->priv->history),
- (gpointer *) &action->priv->history);
+ (gpointer) &action->priv->history);
}
G_OBJECT_CLASS (ev_navigation_action_parent_class)->finalize (object);
action_class->toolbar_item_type = GTK_TYPE_TOOL_ITEM;
action_class->create_tool_item = create_tool_item;
action_class->connect_proxy = connect_proxy;
+ action_class->create_menu_item = create_menu_item;
widget_signals[WIDGET_ACTIVATE_LINK] = g_signal_new ("activate_link",
G_OBJECT_CLASS_TYPE (object_class),