Browse Source

#2060 fix escape keyboard shortcut not working correctly, add in debug to search keyboard shortcuts

pull/2092/head
jlukic 10 years ago
parent
commit
39ab2002c2
1 changed files with 18 additions and 5 deletions
  1. 23
      src/definitions/modules/dropdown.js

23
src/definitions/modules/dropdown.js

@ -759,6 +759,7 @@ $.fn.dropdown = function(parameters) {
if(isFocusedOnSearch && (pressedKey == keys.delimiter)) { if(isFocusedOnSearch && (pressedKey == keys.delimiter)) {
// tokenize on comma // tokenize on comma
if(module.is.visible()) { if(module.is.visible()) {
module.verbose('Delimiter key pressed. Tokenizing');
module.event.item.click.call($selectedItem, event); module.event.item.click.call($selectedItem, event);
event.preventDefault(); event.preventDefault();
} }
@ -766,12 +767,17 @@ $.fn.dropdown = function(parameters) {
else if(pressedKey == keys.leftArrow) { else if(pressedKey == keys.leftArrow) {
// activate previous label // activate previous label
if((isFocused || caretAtStart) && !hasActiveLabel) { if((isFocused || caretAtStart) && !hasActiveLabel) {
module.verbose('Selecting previous label');
$label.last().addClass(className.active); $label.last().addClass(className.active);
} }
else if(hasActiveLabel && !isFirstLabel) { else if(hasActiveLabel && !isFirstLabel) {
if(!event.shiftKey) { if(!event.shiftKey) {
module.verbose('Selecting previous label');
$label.removeClass(className.active) $label.removeClass(className.active)
} }
else {
module.verbose('Adding previous label to selection');
}
$activeLabel.prev() $activeLabel.prev()
.addClass(className.active) .addClass(className.active)
.end() .end()
@ -787,8 +793,12 @@ $.fn.dropdown = function(parameters) {
// activate next label // activate next label
if(hasActiveLabel) { if(hasActiveLabel) {
if(!event.shiftKey) { if(!event.shiftKey) {
module.verbose('Selecting next label');
$label.removeClass(className.active) $label.removeClass(className.active)
} }
else {
module.verbose('Adding next label to selection');
}
$activeLabel.next() $activeLabel.next()
.addClass(className.active) .addClass(className.active)
.end() .end()
@ -798,10 +808,12 @@ $.fn.dropdown = function(parameters) {
} }
else if(pressedKey == keys.deleteKey || pressedKey == keys.backspace) { else if(pressedKey == keys.deleteKey || pressedKey == keys.backspace) {
if(hasActiveLabel) { if(hasActiveLabel) {
module.verbose('Removing active labels');
$activeLabel.last().next().addClass(className.active); $activeLabel.last().next().addClass(className.active);
module.remove.labels($activeLabel); module.remove.labels($activeLabel);
} }
else if(caretAtStart && !hasActiveLabel && pressedKey == keys.backspace) { else if(caretAtStart && !hasActiveLabel && pressedKey == keys.backspace) {
module.verbose('Removing last label on input backspace');
$activeLabel = $label.last().addClass(className.active); $activeLabel = $label.last().addClass(className.active);
activeValue = $activeLabel.data('value'); activeValue = $activeLabel.data('value');
module.remove.selected(activeValue); module.remove.selected(activeValue);
@ -937,6 +949,12 @@ $.fn.dropdown = function(parameters) {
event.preventDefault(); event.preventDefault();
} }
// escape (close menu)
if(pressedKey == keys.escape) {
module.verbose('Escape key pressed, closing dropdown');
module.hide();
}
} }
else { else {
// enter (open menu) // enter (open menu)
@ -944,11 +962,6 @@ $.fn.dropdown = function(parameters) {
module.verbose('Enter key pressed, showing dropdown'); module.verbose('Enter key pressed, showing dropdown');
module.show(); module.show();
} }
// escape (close menu)
if(pressedKey == keys.escape) {
module.verbose('Escape key pressed, closing dropdown');
module.hide();
}
// down arrow (open menu) // down arrow (open menu)
if(pressedKey == keys.downArrow) { if(pressedKey == keys.downArrow) {
module.verbose('Down key pressed, showing dropdown'); module.verbose('Down key pressed, showing dropdown');

Loading…
Cancel
Save