Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-09-22 17:14:40 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-09-22 17:14:40 (GMT)
commitcc84ef1a82edb0808cf64492bd5f711368dc71d8 (patch)
tree1ec7db15011717adb5de8d0b8ded598ef22abc64
parent30853045676b8ad1e54d667d80324e7ab274c6c0 (diff)
#3626, #3462: Do sane things with invalid input in the page number entry box.
-rw-r--r--NEWS3
-rw-r--r--readtoolbar.py21
2 files changed, 23 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 91eb841..494f513 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,6 @@
+* #3626, #3462: Do sane things with invalid input in the page number entry
+ box. (tomeu)
+
31
* Update spanish translation
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()