runDialog: animate to new height on error

When an error message is displayed the run dialog
pops to the new height instantly.  It needs a
a transition.

This commit makes the dialog quickly grow to its
ultimate height, making room for the error message,
before showing it.

https://bugzilla.gnome.org/show_bug.cgi?id=637187
This commit is contained in:
Ray Strode 2010-12-06 14:41:45 -05:00
parent ab1ecb5ba2
commit 2905b0318d

View File

@ -21,6 +21,8 @@ const MAX_FILE_DELETED_BEFORE_INVALID = 10;
const HISTORY_KEY = 'command-history'; const HISTORY_KEY = 'command-history';
const HISTORY_LIMIT = 512; const HISTORY_LIMIT = 512;
const DIALOG_GROW_TIME = 0.1;
function CommandCompleter() { function CommandCompleter() {
this._init(); this._init();
} }
@ -362,7 +364,21 @@ __proto__: ModalDialog.ModalDialog.prototype,
let errorStr = _("Execution of '%s' failed:").format(command) + '\n' + e.message; let errorStr = _("Execution of '%s' failed:").format(command) + '\n' + e.message;
this._errorMessage.set_text(errorStr); this._errorMessage.set_text(errorStr);
this._errorBox.show(); if (!this._errorBox.visible) {
let [errorBoxMinHeight, errorBoxNaturalHeight] = this._errorBox.get_preferred_height(-1);
let parentActor = this._errorBox.get_parent();
Tweener.addTween(parentActor,
{ height: parentActor.height + errorBoxNaturalHeight,
time: DIALOG_GROW_TIME,
transition: 'easeOutQuad',
onComplete: Lang.bind(this,
function() {
parentActor.set_height(-1);
this._errorBox.show();
})
});
}
} }
} }
} }