]> www.fi.muni.cz Git - evince.git/commitdiff
Update page action when entry text changes but not current page
authorCarlos Garcia Campos <carlosgc@gnome.org>
Sat, 12 Dec 2009 15:22:10 +0000 (16:22 +0100)
committerCarlos Garcia Campos <carlosgc@gnome.org>
Sat, 12 Dec 2009 15:22:10 +0000 (16:22 +0100)
That happens when user types and invalid page or current page. Fixes
bgo#603714.

libmisc/ev-page-action-widget.c

index 2b29e785ddcbc6300db4c750a50dea79981c85a7..a355187100b05c0c594b35e2726d141cc67f4df8 100644 (file)
@@ -132,6 +132,10 @@ activate_cb (EvPageActionWidget *action_widget)
        EvLinkAction *link_action;
        EvLink *link;
        gchar *link_text;
+       gint current_page;
+
+       model = action_widget->doc_model;
+       current_page = ev_document_model_get_page (model);
 
        text = gtk_entry_get_text (GTK_ENTRY (action_widget->entry));
 
@@ -145,14 +149,8 @@ activate_cb (EvPageActionWidget *action_widget)
        g_object_unref (link);
        g_free (link_text);
 
-       /* rest the entry to the current page if we were unable to
-        * change it */
-       model = action_widget->doc_model;
-       page_label = ev_document_get_page_label (action_widget->document,
-                                                ev_document_model_get_page (model));
-       gtk_entry_set_text (GTK_ENTRY (action_widget->entry), page_label);
-       gtk_editable_set_position (GTK_EDITABLE (action_widget->entry), -1);
-       g_free (page_label);
+       if (current_page == ev_document_model_get_page (model))
+               ev_page_action_widget_set_current_page (action_widget, current_page);
 }
 
 static void