瀏覽代碼

golden-layout: fix focus of tab when closing one

lviguier 1 年之前
父節點
當前提交
ba32b1d205
共有 1 個文件被更改,包括 6 次插入8 次删除
  1. 6 8
      bin/libs/goldenlayout.js

+ 6 - 8
bin/libs/goldenlayout.js

@@ -4399,22 +4399,20 @@ lm.utils.copy( lm.items.Stack.prototype, {
 
 	removeChild: function( contentItem, keepChild ) {
 		var index = lm.utils.indexOf( contentItem, this.contentItems );
+		var curIndex = lm.utils.indexOf( this._activeContentItem, this.contentItems );
 		lm.items.AbstractContentItem.prototype.removeChild.call( this, contentItem, keepChild );
 		this.header.removeTab( contentItem );
 
 		if( this.contentItems.length > 0 ) {
-			this.setActiveContentItem( this.contentItems[ Math.max( index - 1, 0 ) ] );
+			var indexToFocus = index > curIndex ? curIndex : curIndex - 1;
+			if (curIndex == index)
+				indexToFocus = Math.max( index - 1, 0 );
+
+			this.setActiveContentItem( this.contentItems[ indexToFocus ] );
 		} else {
 			this._activeContentItem = null;
 		}
 
-		// var activeContentItem = this.header.parent.getActiveContentItem();
-		// var activeIndex = lm.utils.indexOf( activeContentItem, this.contentItems );
-		// if( activeIndex === index && this.contentItems.length > 0 ) {
-		// 	this.setActiveContentItem( this.contentItems[ Math.max( index - 1, 0 ) ] );
-		// } else {
-		// 	this._activeContentItem = null;
-		// }
 
 		this._$validateClosability();
 		this.emitBubblingEvent( 'stateChanged' );