dash: Avoid "zoom" effect when first shown

The dash is created empty and the initial set of items is added
before it's shown for the first time. As the additions of items
is now animated, this results in a slightly odd effect when all
items zoom in at once. So special-case the first time _redisplay()
is called and skip animations in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=636156
This commit is contained in:
Florian Müllner 2011-02-02 16:44:07 +01:00
parent d6020f1402
commit 9bbf293898

View File

@ -250,6 +250,7 @@ Dash.prototype = {
_init : function() { _init : function() {
this._maxHeight = -1; this._maxHeight = -1;
this._iconSize = 48; this._iconSize = 48;
this._shownInitially = false;
this._dragPlaceholder = null; this._dragPlaceholder = null;
this._dragPlaceholderPos = -1; this._dragPlaceholderPos = -1;
@ -564,6 +565,13 @@ Dash.prototype = {
if (this._favRemoveTarget && this._favRemoveTarget.hiding) if (this._favRemoveTarget && this._favRemoveTarget.hiding)
this._favRemoveTarget.actor.show(); this._favRemoveTarget.actor.show();
// Skip animations on first run when adding the initial set
// of items, to avoid all items zooming in at once
if (!this._shownInitially) {
this._shownInitially = true;
return;
}
for (let i = 0; i < removedActors.length; i++) { for (let i = 0; i < removedActors.length; i++) {
removedActors[i].show(); removedActors[i].show();
let item = removedActors[i]._delegate; let item = removedActors[i]._delegate;