diff --git a/ac_select_event-365241-54.patch b/ac_select_event-365241-54.patch new file mode 100644 index 00000000..02fd35a7 --- /dev/null +++ b/ac_select_event-365241-54.patch @@ -0,0 +1,30 @@ +diff --git a/misc/autocomplete.js b/misc/autocomplete.js +index 8f7ac60..5679081 100644 +--- a/misc/autocomplete.js ++++ b/misc/autocomplete.js +@@ -114,6 +114,7 @@ Drupal.jsAC.prototype.onkeyup = function (input, e) { + */ + Drupal.jsAC.prototype.select = function (node) { + this.input.value = $(node).data('autocompleteValue'); ++ $(this.input).trigger('autocompleteSelect', [node]); + }; + + /** +@@ -167,7 +168,7 @@ Drupal.jsAC.prototype.unhighlight = function (node) { + Drupal.jsAC.prototype.hidePopup = function (keycode) { + // Select item if the right key or mousebutton was pressed. + if (this.selected && ((keycode && keycode != 46 && keycode != 8 && keycode != 27) || !keycode)) { +- this.input.value = $(this.selected).data('autocompleteValue'); ++ this.select(this.selected); + } + // Hide popup. + var popup = this.popup; +@@ -220,7 +221,7 @@ Drupal.jsAC.prototype.found = function (matches) { + for (key in matches) { + $('
  • ') + .html($('
    ').html(matches[key])) +- .mousedown(function () { ac.select(this); }) ++ .mousedown(function () { ac.hidePopup(this); }) + .mouseover(function () { ac.highlight(this); }) + .mouseout(function () { ac.unhighlight(this); }) + .data('autocompleteValue', key) diff --git a/misc/autocomplete.js b/misc/autocomplete.js index 8f7ac601..56790817 100644 --- a/misc/autocomplete.js +++ b/misc/autocomplete.js @@ -114,6 +114,7 @@ Drupal.jsAC.prototype.onkeyup = function (input, e) { */ Drupal.jsAC.prototype.select = function (node) { this.input.value = $(node).data('autocompleteValue'); + $(this.input).trigger('autocompleteSelect', [node]); }; /** @@ -167,7 +168,7 @@ Drupal.jsAC.prototype.unhighlight = function (node) { Drupal.jsAC.prototype.hidePopup = function (keycode) { // Select item if the right key or mousebutton was pressed. if (this.selected && ((keycode && keycode != 46 && keycode != 8 && keycode != 27) || !keycode)) { - this.input.value = $(this.selected).data('autocompleteValue'); + this.select(this.selected); } // Hide popup. var popup = this.popup; @@ -220,7 +221,7 @@ Drupal.jsAC.prototype.found = function (matches) { for (key in matches) { $('
  • ') .html($('
    ').html(matches[key])) - .mousedown(function () { ac.select(this); }) + .mousedown(function () { ac.hidePopup(this); }) .mouseover(function () { ac.highlight(this); }) .mouseout(function () { ac.unhighlight(this); }) .data('autocompleteValue', key)