diff --git a/lib/jquery.webfonts.js b/lib/jquery.webfonts.js index c034348d..f3edc3e3 100644 --- a/lib/jquery.webfonts.js +++ b/lib/jquery.webfonts.js @@ -211,16 +211,25 @@ // Load and apply fonts for other language tagged elements (batched) if ( element.lang && element.lang !== webfonts.language ) { - // Child element's language differs from parent. fontFamily = webfonts.getFont( element.lang ); if ( !fontFamily ) { - // If there is no explicit font for this language, it will - // inherit the webfont for the parent. But that is undesirable here - // since language is different. So inherit the original font of the - // element. Define it explicitly so that inheritance is broken. - fontFamily = webfonts.originalFontFamily; + // No font preference for the language. + // Check if we need to reset for this language. + // If the font of the parent element, to which webfonts were applied, + // remained the same, there is no need to reset. + if ( webfonts.$element.css( 'fontFamily' ) !== webfonts.originalFontFamily ) { + // The parent font changed. + // Is there an inheritance? + // Is the font for this element the same as parent's font? + if ( fontFamilyStyle === webfonts.$element.css( 'fontFamily' ) ) { + // Break inheritance of the font from the parent element + // by applying the original font to this element + fontFamily = webfonts.originalFontFamily; + } + } } + // We do not have fonts for all languages if ( fontFamily !== null ) { append( fontQueue, fontFamily ); @@ -366,8 +375,6 @@ fontFaceRule += '\tfont-weight:' + fontconfig.fontweight + ';'; } - fontFaceRule += '\tfont-style:' + fontStyle + ';'; - if ( fontconfig.fontweight !== undefined ) { fontFaceRule += '\tfont-weight:' + fontconfig.fontweight + ';'; }