workspace: Use a better algorithm for computing individual thumbnail scale
The one we had before could make unmaximized windows appear to be bigger than maximized ones, for a few reasons. Ensure that this doesn't happen again, and add some comments to explain the whys and needs for twiddling the individual thumbnail size. https://bugzilla.gnome.org/show_bug.cgi?id=686944
This commit is contained in:
parent
7ba0f07732
commit
ef69c228fd
@ -777,16 +777,19 @@ const LayoutStrategy = new Lang.Class({
|
||||
// Computes and returns a fancy scale for @window using the
|
||||
// base scale, @scale.
|
||||
_computeWindowScale: function(window, scale) {
|
||||
let width = window.actor.width;
|
||||
let height = window.actor.height;
|
||||
let ratio;
|
||||
// Since we align windows next to each other, the height of the
|
||||
// thumbnails is much more important to preserve than the width of
|
||||
// them, so two windows with equal height, but maybe differering
|
||||
// widths line up.
|
||||
let ratio = window.actor.height / this._monitor.height;
|
||||
|
||||
if (width > height)
|
||||
ratio = width / this._monitor.width;
|
||||
else
|
||||
ratio = height / this._monitor.height;
|
||||
// The purpose of this manipulation here is to prevent windows
|
||||
// from getting too small. For something like a calculator window,
|
||||
// we need to bump up the size just a bit to make sure it looks
|
||||
// good. We'll use a multiplier of 1.5 for this.
|
||||
|
||||
let fancyScale = (2 / (1 + ratio)) * scale;
|
||||
// Map from [0, 1] to [1.5, 1]
|
||||
let fancyScale = _interpolate(1.5, 1, ratio) * scale;
|
||||
return fancyScale;
|
||||
},
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user