Support case sensitive prefixes in menus
diff --git a/dev/js/src/menu.js b/dev/js/src/menu.js
index 0b013b9..7b2f779 100644
--- a/dev/js/src/menu.js
+++ b/dev/js/src/menu.js
@@ -12,7 +12,6 @@
* TODO: next and prev should use an optimized version of _screen
* TODO: On next and prev the viewport should move
* to the active item.
- * TODO: pageUp and pageDown should use _screen
* TODO: Ignore keys with function key combinations (other than shift)
* TODO: Show the slider briefly on move (whenever screen is called).
*/
@@ -181,21 +180,22 @@
* There is a prefix set, so filter the list!
*/
var pos;
- var paddedPrefix = " " + this.prefix();
+ var prefix = " " + this.prefix().toLowerCase();
// Iterate over all items and choose preferred matching items
// i.e. the matching happens at the word start
for (pos = 0; pos < this._items.length; pos++) {
- if ((this.item(pos).lcField().indexOf(paddedPrefix)) >= 0)
+ if ((this.item(pos).lcField().indexOf(prefix)) >= 0)
this._list.push(pos);
};
// The list is empty - so lower your expectations
// Iterate over all items and choose matching items
// i.e. the matching happens anywhere in the word
+ prefix = prefix.substring(1);
if (this._list.length == 0) {
for (pos = 0; pos < this._items.length; pos++) {
- if ((this.item(pos).lcField().indexOf(this.prefix())) >= 0)
+ if ((this.item(pos).lcField().indexOf(prefix)) >= 0)
this._list.push(pos);
};
};
@@ -311,7 +311,7 @@
// Add characters to prefix
_keypress : function (e) {
e.halt();
- var c = String.fromCharCode(_codeFromEvent(e)).toLowerCase();
+ var c = String.fromCharCode(_codeFromEvent(e)); // .toLowerCase();
// Add prefix
this._prefix.add(c);
@@ -761,7 +761,7 @@
_reset : function () {
this._offset = 0;
this._pos = 0;
- this._prefix.value('');
+ this._prefix.clear();
},
@@ -806,7 +806,7 @@
// Highlight based on prefix
if (this.prefix().length > 0)
- item.highlight(this.prefix());
+ item.highlight(this.prefix().toLowerCase());
// Append element
this.element().appendChild(item.element());
@@ -819,7 +819,7 @@
// Highlight based on prefix
if (this.prefix().length > 0)
- item.highlight(this.prefix());
+ item.highlight(this.prefix().toLowerCase());
var e = this.element();
// Append element after lengthField/prefix/slider