diff --git a/lib/jquery.ime/jquery.ime.js b/lib/jquery.ime/jquery.ime.js index fbe5dd8e..ace47dc5 100644 --- a/lib/jquery.ime/jquery.ime.js +++ b/lib/jquery.ime/jquery.ime.js @@ -1,4 +1,4 @@ -/*! jquery.ime - v0.1.0+20130819 +/*! jquery.ime - v0.1.0+20130820 * https://github.com/wikimedia/jquery.ime * Copyright (c) 2013 Santhosh Thottingal; Licensed GPL, MIT */ ( function ( $ ) { @@ -881,12 +881,14 @@ imeselector.$menu.on( 'click.ime', 'li.ime-im', function () { imeselector.selectIM( $( this ).data( 'ime-inputmethod' ) ); + imeselector.$element.trigger( 'setim.ime', $( this ).data( 'ime-inputmethod' ) ); return false; } ); imeselector.$menu.on( 'click.ime', 'li.ime-lang', function () { - imeselector.selectLanguage( $( this ).attr( 'lang' ) ); + var im = imeselector.selectLanguage( $( this ).attr( 'lang' ) ); + imeselector.$element.trigger( 'setim.ime', im ); return false; } ); @@ -942,9 +944,11 @@ if ( isShortcutKey( e ) ) { if ( ime.isActive() ) { this.disableIM(); + this.$element.trigger( 'setim.ime', 'system' ); } else { if ( this.inputmethod !== null ) { this.selectIM( this.inputmethod.id ); + this.$element.trigger( 'setim.ime', this.inputmethod.id ); } else { languageCode = this.decideLanguage(); this.selectLanguage( languageCode ); @@ -1042,7 +1046,8 @@ /** * Select a language * - * @param languageCode + * @param {string} languageCode + * @return {string|bool} Selected input method id or false */ selectLanguage: function ( languageCode ) { var ime, @@ -1062,7 +1067,7 @@ this.selectIM( $.ime.preferences.getIM( languageCode ) ); } - return false; + return $.ime.preferences.getIM( languageCode ); } this.$menu.find( 'li.ime-lang' ).show(); @@ -1075,6 +1080,8 @@ ime.setLanguage( languageCode ); this.inputmethod = null; this.selectIM( $.ime.preferences.getIM( languageCode ) ); + + return $.ime.preferences.getIM( languageCode ); }, /** @@ -1283,11 +1290,11 @@ } function imeList() { - return $( '