diff --git a/coffee/chosen.jquery.coffee b/coffee/chosen.jquery.coffee index abec9ef587c..f0afce7b892 100644 --- a/coffee/chosen.jquery.coffee +++ b/coffee/chosen.jquery.coffee @@ -89,6 +89,8 @@ class Chosen extends AbstractChosen @search_field.bind 'keyup.chosen', (evt) => this.keyup_checker(evt); return @search_field.bind 'keydown.chosen', (evt) => this.keydown_checker(evt); return @search_field.bind 'focus.chosen', (evt) => this.input_focus(evt); return + @search_field.bind 'cut.chosen', (evt) => this.clipboard_event_checker(evt); return + @search_field.bind 'paste.chosen', (evt) => this.clipboard_event_checker(evt); return if @is_multiple @search_choices.bind 'click.chosen', (evt) => this.choices_click(evt); return diff --git a/coffee/chosen.proto.coffee b/coffee/chosen.proto.coffee index 0ac841a3779..c715bc18195 100644 --- a/coffee/chosen.proto.coffee +++ b/coffee/chosen.proto.coffee @@ -73,6 +73,8 @@ class @Chosen extends AbstractChosen @search_field.observe "keyup", (evt) => this.keyup_checker(evt) @search_field.observe "keydown", (evt) => this.keydown_checker(evt) @search_field.observe "focus", (evt) => this.input_focus(evt) + @search_field.observe "cut", (evt) => this.clipboard_event_checker(evt) + @search_field.observe "paste", (evt) => this.clipboard_event_checker(evt) if @is_multiple @search_choices.observe "click", (evt) => this.choices_click(evt) diff --git a/coffee/lib/abstract-chosen.coffee b/coffee/lib/abstract-chosen.coffee index 298cbc6f5d3..e4a3c8d555f 100644 --- a/coffee/lib/abstract-chosen.coffee +++ b/coffee/lib/abstract-chosen.coffee @@ -222,6 +222,9 @@ class AbstractChosen # don't do anything on these keys else this.results_search() + clipboard_event_checker: (evt) -> + setTimeout (=> this.results_search()), 50 + container_width: -> return if @options.width? then @options.width else "#{@form_field.offsetWidth}px"