Skip to content
This repository was archived by the owner on Sep 6, 2021. It is now read-only.

Commit 2f2361e

Browse files
committed
Merge pull request #3568 from TomMalbran/tom/fix-issue-3478
Fix #3478: Persistent highlight is taller than transient highlight
2 parents de9d257 + 9f9a752 commit 2f2361e

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

src/view/ViewCommandHandlers.js

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)