dash: account for scale factor to determine icon size

https://bugzilla.gnome.org/show_bug.cgi?id=705410
This commit is contained in:
Cosimo Cecchi 2014-02-15 21:35:13 -08:00
parent f543161234
commit e92d204d42

View File

@ -381,6 +381,8 @@ const DashActor = new Lang.Class({
} }
}); });
const baseIconSizes = [ 16, 22, 24, 32, 48, 64 ];
const Dash = new Lang.Class({ const Dash = new Lang.Class({
Name: 'Dash', Name: 'Dash',
@ -632,25 +634,24 @@ const Dash = new Lang.Class({
let minHeight, natHeight; let minHeight, natHeight;
// Enforce the current icon size during the size request // Enforce the current icon size during the size request
let [currentWidth, currentHeight] = firstIcon.icon.get_size(); firstIcon.setIconSize(this.iconSize);
firstIcon.icon.set_size(this.iconSize, this.iconSize);
[minHeight, natHeight] = firstButton.get_preferred_height(-1); [minHeight, natHeight] = firstButton.get_preferred_height(-1);
firstIcon.icon.set_size(currentWidth, currentHeight); let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
let iconSizes = baseIconSizes.map(function(s) {
return s * scaleFactor;
});
// Subtract icon padding and box spacing from the available height // Subtract icon padding and box spacing from the available height
availHeight -= iconChildren.length * (natHeight - this.iconSize) + availHeight -= iconChildren.length * (natHeight - this.iconSize * scaleFactor) +
(iconChildren.length - 1) * spacing; (iconChildren.length - 1) * spacing;
let availSize = availHeight / iconChildren.length; let availSize = availHeight / iconChildren.length;
let iconSizes = [ 16, 22, 24, 32, 48, 64 ]; let newIconSize = baseIconSizes[0];
let newIconSize = 16;
for (let i = 0; i < iconSizes.length; i++) { for (let i = 0; i < iconSizes.length; i++) {
if (iconSizes[i] < availSize) if (iconSizes[i] < availSize)
newIconSize = iconSizes[i]; newIconSize = baseIconSizes[i];
} }
if (newIconSize == this.iconSize) if (newIconSize == this.iconSize)