barLevel: Return when trying to set value to already used value
There are some cases (for example when tweening value changes), where the level will be set to the same value it already is at. Avoid those unnecessary repaints by checking whether the value is already used and returning if it is. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/385
This commit is contained in:
parent
b970ee7293
commit
86c3909908
@ -42,7 +42,12 @@ var BarLevel = class {
|
|||||||
if (isNaN(value))
|
if (isNaN(value))
|
||||||
throw TypeError('The bar level value must be a number');
|
throw TypeError('The bar level value must be a number');
|
||||||
|
|
||||||
this._value = Math.max(Math.min(value, this._maxValue), 0);
|
value = Math.max(Math.min(value, this._maxValue), 0);
|
||||||
|
|
||||||
|
if (this._value == value)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this._value = value;
|
||||||
this.actor.queue_repaint();
|
this.actor.queue_repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,7 +61,12 @@ var BarLevel = class {
|
|||||||
if (isNaN(value))
|
if (isNaN(value))
|
||||||
throw TypeError('The bar level max value must be a number');
|
throw TypeError('The bar level max value must be a number');
|
||||||
|
|
||||||
this._maxValue = Math.max(value, 1);
|
value = Math.max(value, 1);
|
||||||
|
|
||||||
|
if (this._maxValue == value)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this._maxValue = value;
|
||||||
this._overdriveStart = Math.min(this._overdriveStart, this._maxValue);
|
this._overdriveStart = Math.min(this._overdriveStart, this._maxValue);
|
||||||
this.actor.queue_repaint();
|
this.actor.queue_repaint();
|
||||||
}
|
}
|
||||||
@ -70,6 +80,10 @@ var BarLevel = class {
|
|||||||
set overdrive_start(value) {
|
set overdrive_start(value) {
|
||||||
if (isNaN(value))
|
if (isNaN(value))
|
||||||
throw TypeError('The overdrive limit value must be a number');
|
throw TypeError('The overdrive limit value must be a number');
|
||||||
|
|
||||||
|
if (this._overdriveStart == value)
|
||||||
|
return;
|
||||||
|
|
||||||
if (value > this._maxValue)
|
if (value > this._maxValue)
|
||||||
throw new Error(`Tried to set overdrive value to ${value}, ` +
|
throw new Error(`Tried to set overdrive value to ${value}, ` +
|
||||||
`which is a number greater than the maximum allowed value ${this._maxValue}`);
|
`which is a number greater than the maximum allowed value ${this._maxValue}`);
|
||||||
|
Loading…
Reference in New Issue
Block a user