gint n_pages;
n_pages = page_cache ? ev_page_cache_get_n_pages (page_cache) : 0;
- label_text = g_strdup_printf (_("(%d of %d)"), page + 1, n_pages);
+ if (ev_page_cache_has_nonnumeric_page_labels (page_cache)) {
+ label_text = g_strdup_printf (_("(%d of %d)"), page + 1, n_pages);
+ } else {
+ label_text = g_strdup_printf (_("of %d"), n_pages);
+ }
gtk_label_set_text (GTK_LABEL (proxy->label), label_text);
g_free (label_text);
}
g_signal_handler_disconnect (proxy->page_cache, proxy->signal_id);
if (page_cache != NULL) {
- signal_id = g_signal_connect (page_cache,
- "page-changed",
- G_CALLBACK (page_changed_cb),
- proxy);
+ signal_id = g_signal_connect_object (page_cache,
+ "page-changed",
+ G_CALLBACK (page_changed_cb),
+ proxy, 0);
/* Set the initial value */
page_changed_cb (page_cache,
ev_page_cache_get_current_page (page_cache),
EvPageAction *page = EV_PAGE_ACTION (object);
if (page->priv->page_cache) {
- g_signal_handlers_disconnect_matched (page->priv->page_cache, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, page_changed_cb, NULL);
g_object_unref (page->priv->page_cache);
page->priv->page_cache = NULL;
}