@@ -58,7 +58,15 @@ define(function (require, exports, module) {
5858 * @type {int }
5959 */
6060 var MAX_FONT_SIZE = 72 ;
61-
61+
62+ /**
63+ * @const
64+ * @private
65+ * The ratio of line-height to font-size when they use the same units
66+ * @type {float }
67+ */
68+ var LINE_HEIGHT = 1.25 ;
69+
6270 /**
6371 * @private
6472 * @type {PreferenceStorage }
@@ -147,28 +155,20 @@ define(function (require, exports, module) {
147155 // Guaranteed to work by the validation above.
148156 var fsUnits = fsStyle . substring ( fsStyle . length - 2 , fsStyle . length ) ;
149157 var lhUnits = lhStyle . substring ( lhStyle . length - 2 , lhStyle . length ) ;
150-
151- var fsOld = parseFloat ( fsStyle . substring ( 0 , fsStyle . length - 2 ) ) ;
152- var lhOld = parseFloat ( lhStyle . substring ( 0 , lhStyle . length - 2 ) ) ;
153-
154- var fsDelta = ( fsUnits === "px" ) ? adjustment : ( 0.1 * adjustment ) ;
155- var lhDelta = ( lhUnits === "px" ) ? adjustment : ( 0.1 * adjustment ) ;
156-
157- var fsNew = fsOld + fsDelta ;
158- var lhNew = lhOld + lhDelta ;
158+ var delta = ( fsUnits === "px" ) ? 1 : 0.1 ;
159159
160- var fsStr = fsNew + fsUnits ;
161- var lhStr = lhNew + lhUnits ;
162-
163- // Don't let the font size get too small.
164- if ( ( fsUnits === "px" && fsNew < MIN_FONT_SIZE ) ||
165- ( fsUnits === "em" && fsNew < ( MIN_FONT_SIZE * 0.1 ) ) ) {
166- return false ;
167- }
160+ var fsOld = parseFloat ( fsStyle . substring ( 0 , fsStyle . length - 2 ) ) ;
161+ var lhOld = parseFloat ( lhStyle . substring ( 0 , lhStyle . length - 2 ) ) ;
162+
163+ var fsNew = fsOld + ( delta * adjustment ) ;
164+ var lhNew = ( fsUnits === lhUnits ) ? fsNew * LINE_HEIGHT : lhOld ;
168165
169- // Don't let the font size get too large.
170- if ( ( fsUnits === "px" && fsNew > MAX_FONT_SIZE ) ||
171- ( fsUnits === "em" && fsNew > ( MAX_FONT_SIZE * 0.1 ) ) ) {
166+ var fsStr = fsNew + fsUnits ;
167+ var lhStr = lhNew + lhUnits ;
168+
169+ // Don't let the font size get too small or too large. The minimum font size is 1px or 0.1em
170+ // and the maximum font size is 72px or 7.2em depending on the unit used
171+ if ( fsNew < MIN_FONT_SIZE * delta || fsNew > MAX_FONT_SIZE * delta ) {
172172 return false ;
173173 }
174174
0 commit comments