diff --git a/UniversalLanguageSelector.hooks.php b/UniversalLanguageSelector.hooks.php index 3fc37be1..f776b43f 100644 --- a/UniversalLanguageSelector.hooks.php +++ b/UniversalLanguageSelector.hooks.php @@ -248,7 +248,7 @@ class UniversalLanguageSelectorHooks { * @return bool */ public static function addConfig( &$vars ) { - global $wgULSGeoService, $wgULSIMEEnabled, $wgULSPosition, + global $wgULSGeoService, $wgULSIMEEnabled, $wgULSPosition, $wgULSNoWebfontsSelectors, $wgULSAnonCanChangeLanguage, $wgULSEventLogging, $wgULSNoImeSelectors; // Place constant stuff here (not depending on request context) @@ -260,6 +260,7 @@ class UniversalLanguageSelectorHooks { $vars['wgULSAnonCanChangeLanguage'] = $wgULSAnonCanChangeLanguage; $vars['wgULSEventLogging'] = $wgULSEventLogging; $vars['wgULSNoImeSelectors'] = $wgULSNoImeSelectors; + $vars['wgULSNoWebfontsSelectors'] = $wgULSNoWebfontsSelectors; return true; } diff --git a/UniversalLanguageSelector.php b/UniversalLanguageSelector.php index 1d5dd154..7da0f491 100644 --- a/UniversalLanguageSelector.php +++ b/UniversalLanguageSelector.php @@ -130,6 +130,14 @@ $wgULSEventLogging = false; */ $wgULSNoImeSelectors = array( '#wpCaptchaWord' ); + +/** + * Array of jQuery selectors of elements on which webfonts must not be applied. + * By default exclude the interwiki language links. + * @since 2013.09 + */ +$wgULSNoWebfontsSelectors = array( '#p-lang li > a' ); + $dir = __DIR__; // Internationalization diff --git a/lib/jquery.webfonts.js b/lib/jquery.webfonts.js index b4c0b5eb..c089467d 100644 --- a/lib/jquery.webfonts.js +++ b/lib/jquery.webfonts.js @@ -190,6 +190,10 @@ var fontFamilyStyle, fontFamily, $element = $( element ); + if ( $element.is( webfonts.options.exclude ) ) { + return; + } + // Note: it depends on the browser whether this returns font names // which don't exist. In Chrome it does, while in Opera it doesn't. fontFamilyStyle = $element.css( 'fontFamily' ); diff --git a/resources/js/ext.uls.webfonts.js b/resources/js/ext.uls.webfonts.js index c0922bc7..52b87b34 100644 --- a/resources/js/ext.uls.webfonts.js +++ b/resources/js/ext.uls.webfonts.js @@ -70,12 +70,17 @@ return font; }, exclude: ( function () { + var excludes = $.fn.webfonts.defaults.exclude; + if ( mw.user.options.get( 'editfont' ) !== 'default' ) { // Exclude textboxes from webfonts if user has edit area font option // set using 'Preferences' page - return 'textarea'; + excludes = ( excludes ) + ? excludes + ',textarea' + : 'textarea'; } - return $.fn.webfonts.defaults.exclude; + + return excludes; }() ) } ); $( 'body' ).webfonts(); @@ -87,7 +92,8 @@ // MediaWiki specific overrides for jquery.webfonts $.extend( $.fn.webfonts.defaults, { repository: mediawikiFontRepository, - fontStack: $( 'body' ).css( 'font-family' ).split( /, /g ) + fontStack: $( 'body' ).css( 'font-family' ).split( /, /g ), + exclude: mw.config.get( 'wgULSNoWebfontsSelectors' ).join( ', ' ) } ); mw.webfonts.preferences.load();