From 628923c8128d890b3f65f68def8720834e6eb442 Mon Sep 17 00:00:00 2001 From: "Amir E. Aharoni" Date: Tue, 20 Aug 2013 12:42:52 +0300 Subject: [PATCH] When applying settings, log ime-change only if needed Change-Id: I62b4ce777948c18cec5117279523198f4514c3a6 --- resources/js/ext.uls.inputsettings.js | 28 +++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/resources/js/ext.uls.inputsettings.js b/resources/js/ext.uls.inputsettings.js index ffe91ae9..58eff10a 100644 --- a/resources/js/ext.uls.inputsettings.js +++ b/resources/js/ext.uls.inputsettings.js @@ -528,18 +528,26 @@ * Handle the apply button press */ apply: function () { - var toggleHookName, - inputSettings = this; + var previousIM, + inputSettings = this, + previousLanguage = inputSettings.savedRegistry.language, + currentlyEnabled = $.ime.preferences.isEnabled(), + currentLanguage = $.ime.preferences.getLanguage(), + currentIM = $.ime.preferences.getIM( currentLanguage ); - mw.hook( 'mw.uls.ime.change' ).fire( - $.ime.preferences.getIM( $.ime.preferences.getLanguage() ) - ); + if ( previousLanguage ) { + previousIM = inputSettings.savedRegistry.imes[previousLanguage]; + } - if ( inputSettings.savedRegistry.enable !== $.ime.preferences.isEnabled() ) { - toggleHookName = $.ime.preferences.isEnabled() ? - 'mw.uls.ime.enable' : - 'mw.uls.ime.disable'; - mw.hook( toggleHookName ).fire( 'inputsettings' ); + if ( currentLanguage !== inputSettings.savedRegistry.language || + currentIM !== previousIM + ) { + mw.hook( 'mw.uls.ime.change' ).fire( currentIM ); + } + + if ( inputSettings.savedRegistry.enable !== currentlyEnabled ) { + mw.hook( currentlyEnabled ? 'mw.uls.ime.enable' : 'mw.uls.ime.disable' ) + .fire( 'inputsettings' ); } // Save the preferences