Merge "Prevent context menu from flickering after FocusableNode redraw"

This commit is contained in:
jenkins-bot 2013-10-05 00:26:00 +00:00 committed by Gerrit Code Review
commit b4f415ecc4
2 changed files with 7 additions and 3 deletions

View file

@ -107,7 +107,7 @@ ve.ce.FocusableNode.prototype.onFocusableRerender = function () {
if ( this.focused ) {
this.redrawHighlight();
// reposition menu
this.surface.getSurface().getContext().show( true );
this.surface.getSurface().getContext().show( true, true );
}
};

View file

@ -318,9 +318,11 @@ ve.ui.Context.prototype.updateDimensions = function ( transition ) {
* Shows the context menu.
*
* @method
* @param {boolean} [transition=false] Use a smooth transition
* @param {boolean} [repositionOnly=false] The context is only being moved so don't fade in
* @chainable
*/
ve.ui.Context.prototype.show = function ( transition ) {
ve.ui.Context.prototype.show = function ( transition, repositionOnly ) {
var inspector = this.inspectors.getCurrent(),
focusedNode = this.surface.getView().getFocusedNode();
@ -334,7 +336,9 @@ ve.ui.Context.prototype.show = function ( transition ) {
if ( inspector ) {
this.$menu.hide();
this.inspectors.$.show();
inspector.$.css( 'opacity', 0 );
if ( !repositionOnly ) {
inspector.$.css( 'opacity', 0 );
}
// Update size and fade the inspector in after animation is complete
setTimeout( ve.bind( function () {
inspector.fitHeightToContents();