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 ) { if ( this.focused ) {
this.redrawHighlight(); this.redrawHighlight();
// reposition menu // 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. * Shows the context menu.
* *
* @method * @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 * @chainable
*/ */
ve.ui.Context.prototype.show = function ( transition ) { ve.ui.Context.prototype.show = function ( transition, repositionOnly ) {
var inspector = this.inspectors.getCurrent(), var inspector = this.inspectors.getCurrent(),
focusedNode = this.surface.getView().getFocusedNode(); focusedNode = this.surface.getView().getFocusedNode();
@ -334,7 +336,9 @@ ve.ui.Context.prototype.show = function ( transition ) {
if ( inspector ) { if ( inspector ) {
this.$menu.hide(); this.$menu.hide();
this.inspectors.$.show(); this.inspectors.$.show();
inspector.$.css( 'opacity', 0 ); if ( !repositionOnly ) {
inspector.$.css( 'opacity', 0 );
}
// Update size and fade the inspector in after animation is complete // Update size and fade the inspector in after animation is complete
setTimeout( ve.bind( function () { setTimeout( ve.bind( function () {
inspector.fitHeightToContents(); inspector.fitHeightToContents();