Index: chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.js |
diff --git a/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.js b/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.js |
index 8e1f2460ad34e16692dbb230dbe67a3294a73972..014362ab962c4fba693bd7e41dbbc172bda92555 100644 |
--- a/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.js |
+++ b/chrome/browser/resources/pdf/elements/viewer-page-selector/viewer-page-selector.js |
@@ -16,22 +16,26 @@ Polymer({ |
}, |
/** |
- * The current page being viewed (1-based). |
+ * The current page being viewed (1-based). A change to pageNo is mirrored |
+ * immediately to the input field. A change to the input field is not |
+ * mirrored back until pageNoCommitted() is called and change-page is fired. |
*/ |
pageNo: { |
- type: String, |
- value: '1' |
+ type: Number, |
+ value: 1 |
}, |
strings: Object |
}, |
pageNoCommitted: function() { |
- var page = parseInt(this.pageNo); |
- if (!isNaN(page)) { |
+ var page = parseInt(this.$.input.value); |
+ |
+ if (!isNaN(page) && page <= this.docLength && page > 0) |
this.fire('change-page', {page: page - 1}); |
- this.$.input.blur(); |
- } |
+ else |
+ this.$.input.value = this.pageNo; |
+ this.$.input.blur(); |
}, |
docLengthChanged: function() { |