Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2007-09-25 08:06:09 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2007-09-25 08:06:09 (GMT)
commit846fd4858e504ae07855b9fc417200b905f9555f (patch)
tree5463e7eea4fa329dfdef27256715eeca61f84e58
parent2a50be65a5bbe998be298cfb0e3e3acc70161d45 (diff)
parentcc84ef1a82edb0808cf64492bd5f711368dc71d8 (diff)
Merge branch 'master' of git+ssh://dev.laptop.org/git/projects/read-activity
Conflicts: NEWS
-rw-r--r--NEWS2
-rw-r--r--readtoolbar.py21
2 files changed, 22 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 68ddc2b..4091c24 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
* Update spanish translation
+* #3626, #3462: Do sane things with invalid input in the page number entry
+ box. (tomeu)
31
diff --git a/readtoolbar.py b/readtoolbar.py
index dd9b90a..5351863 100644
--- a/readtoolbar.py
+++ b/readtoolbar.py
@@ -16,6 +16,7 @@
import logging
from gettext import gettext as _
+import re
import pango
import gobject
@@ -119,6 +120,8 @@ class ReadToolbar(gtk.Toolbar):
self._num_page_entry = gtk.Entry()
self._num_page_entry.set_text('0')
self._num_page_entry.set_alignment(1)
+ self._num_page_entry.connect('insert-text',
+ self._num_page_entry_insert_text_cb)
self._num_page_entry.connect('activate',
self._num_page_entry_activate_cb)
@@ -152,9 +155,25 @@ class ReadToolbar(gtk.Toolbar):
page_cache.connect('page-changed', self._page_changed_cb)
self._update_nav_buttons()
+ def _num_page_entry_insert_text_cb(self, entry, text, length, position):
+ if not re.match('[0-9]', text):
+ entry.emit_stop_by_name('insert-text')
+ return True
+ return False
+
def _num_page_entry_activate_cb(self, entry):
- page = int(entry.props.text) - 1
+ if entry.props.text:
+ page = int(entry.props.text) - 1
+ else:
+ page = 0
+
+ if page >= self._document.get_n_pages():
+ page = self._document.get_n_pages() - 1
+ elif page < 0:
+ page = 0
+
self._document.get_page_cache().set_current_page(page)
+ entry.props.text = str(page + 1)
def _go_back_cb(self, button):
self._evince_view.previous_page()