Follow-up 5c38995bd9: don't destroy toolbar twice

The toolbar.destroy() call that was added in 5c38995bd9 was
needed to destroy the dummy toolbar when tearing down VE
before a surface had been intialized. But when tearing down
VE after the surface had been initialized (e.g. exiting using
the Read tab), we would do:

* setTimeout in tearDownToolbar()
** Set toolbar height to 0 and wait for transitionend
*** toolbar.destroy() once transition complete
* toolbar.destroy() in cancel()

This meant that we'd listen for a transitionend event
on an unattached element (because once the setTimeout runs,
the toolbar has already been destroyed by the second call),
which of course never fires, so we'd never resolve the
tearDownToolbar deferred and never finish tearing down VE.

Bug: T98388
Change-Id: I504f0cb0bf13643773fc98cb18b7b380cccb2f88
This commit is contained in:
Roan Kattouw 2015-05-06 16:04:53 -07:00
parent b990c427f2
commit e644d33a8d

View file

@ -419,10 +419,8 @@ ve.init.mw.ViewPageTarget.prototype.cancel = function ( trackMechanism ) {
this.tearDownUnloadHandlers();
// If we got as far as setting up the surface, tear that down
promises.push( this.tearDownSurface() );
}
} else if ( this.toolbar ) {
// If a dummy toolbar was created, destroy it
if ( this.toolbar ) {
this.toolbar.destroy();
}