Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(282)

Unified Diff: ui/keyboard/resources/main.js

Issue 150783002: Aligns the Q A Z keys on the a11y keyboard. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix nits. Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/keyboard/resources/layouts/system-qwerty.html ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/keyboard/resources/main.js
diff --git a/ui/keyboard/resources/main.js b/ui/keyboard/resources/main.js
index 0b07c90615d9877361fb54a0e6865cbce15f819a..b1891d12963ab595c3dac684160a9df043fba698 100644
--- a/ui/keyboard/resources/main.js
+++ b/ui/keyboard/resources/main.js
@@ -308,7 +308,7 @@
weight += allKeys[i].weight;
}
var availableWidth = width - (allKeys.length - 1) * pitch;
- var pixelsPerWeight = width / weight;
+ var pixelsPerWeight = availableWidth / weight;
for (var i = 0; i < allKeys.length; i++) {
var keyWidth = Math.floor(allKeys[i].weight * pixelsPerWeight);
if (i == allKeys.length -1) {
@@ -415,49 +415,55 @@
*/
function realignRow(row, params, heightOffset) {
var all = row.children;
- var stretch = [];
+ var nStretch = 0;
var stretchWeightSum = 0;
var allSum = 0;
-
+ // Keeps track of where to distribute pixels caused by round off errors.
+ var deltaWidth = [];
for (var i = 0; i < all.length; i++) {
+ deltaWidth.push(0)
var key = all[i];
if (key.weight == DEFAULT_KEY_WEIGHT_X){
allSum += params.keyWidth;
continue;
}
- stretch.push(key)
+ nStretch++;
var width =
Math.floor((params.keyWidth/DEFAULT_KEY_WEIGHT_X) * key.weight);
allSum += width;
stretchWeightSum += key.weight;
}
- var nStretch = stretch.length;
var nRegular = all.length - nStretch;
// Extra space.
var extra = params.availableWidth -
allSum -
(params.pitchX * (all.length -1));
var xOffset = params.offsetLeft;
+
var alignment = row.align;
switch (alignment) {
case RowAlignment.STRETCH:
var extraPerWeight = extra/stretchWeightSum;
- for (var i = 0; i < stretch.length; i++) {
- var bonus = Math.floor(stretch[i].weight * extraPerWeight);
- extra -= bonus;
+ for (var i = 0; i < all.length; i++) {
+ if (all[i].weight == DEFAULT_KEY_WEIGHT_X)
+ continue;
+ var delta = Math.floor(all[i].weight * extraPerWeight);
+ extra -= delta;
+ deltaWidth[i] = delta;
// All left-over pixels assigned to right most key.
- if (i == (stretch.length - 1))
- stretch[i].setAttribute('bonus', bonus + extra);
- else
- stretch[i].setAttribute('bonus', bonus);
+ nStretch--;
+ if (nStretch == 0)
+ deltaWidth[i] += extra;
}
break;
case RowAlignment.CENTER:
xOffset += Math.floor(extra/2)
break;
- case RowAlignment.JUSTIFY:
+ case RowAlignment.RIGHT:
xOffset += extra;
break;
+ case RowAlignment.STRETCHRIGHT:
+ deltaWidth[all.length - 1] = extra;
default:
break;
};
@@ -467,12 +473,9 @@
for (var i = 0; i < all.length; i++) {
var key = all[i];
var width = params.keyWidth;
- if (key.weight != DEFAULT_KEY_WEIGHT_X) {
+ if (key.weight != DEFAULT_KEY_WEIGHT_X)
width = Math.floor((params.keyWidth/DEFAULT_KEY_WEIGHT_X) * key.weight)
- var bonus = key.getAttribute('bonus')
- if (bonus)
- width += parseInt(bonus)
- }
+ width += deltaWidth[i];
updateKey(key, width, params.keyHeight, left, yOffset)
left += (width + params.pitchX);
}
@@ -525,6 +528,11 @@
*/
function realignKeyset(keyset, params) {
var rows = keyset.querySelectorAll('kb-row').array();
+ var maxSize = getKeyboardBounds();
+ var height = (maxSize.width > ASPECT_RATIO * maxSize.height) ?
+ maxSize.height : Math.floor(maxSize.width / ASPECT_RATIO);
+ keyset.style.fontSize = (height / FONT_SIZE_RATIO / rows.length) + 'px';
+
var heightOffset = 0;
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
« no previous file with comments | « ui/keyboard/resources/layouts/system-qwerty.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698