Skip to content

Commit 2215463

Browse files
committed
Fix closing tabdock after closing the last tab
1 parent a45dc7c commit 2215463

1 file changed

Lines changed: 11 additions & 14 deletions

File tree

tabshell-layout/src/main/java/com/techsenger/tabshell/layout/dockhost/TabDockFxView.java

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,8 @@
2626
import com.techsenger.tabshell.material.icon.FontIconView;
2727
import com.techsenger.tabshell.material.style.StyleClasses;
2828
import java.util.List;
29-
import javafx.collections.ListChangeListener;
3029
import javafx.scene.Cursor;
3130
import javafx.scene.control.Button;
32-
import javafx.scene.control.Tab;
3331
import javafx.scene.control.Tooltip;
3432
import javafx.scene.input.MouseDragEvent;
3533

@@ -43,6 +41,17 @@ public class TabDockFxView<P extends TabDockPresenter<?>> extends TabHostFxView<
4341

4442
public class Composer extends TabHostFxView<P>.Composer implements TabDockView.Composer {
4543

44+
private final TabDockFxView<P> view = TabDockFxView.this;
45+
46+
@Override
47+
public void removeTab(TabFxView<?> tab) {
48+
super.removeTab(tab);
49+
if (view.getNode().getTabs().isEmpty()
50+
&& getPresenter().getTransitionState() != TabDockTransitionState.TO_MINIMIZED) {
51+
dockHost.getComposer().removeTabDock(view);
52+
}
53+
}
54+
4655
@Override
4756
public void remove() {
4857
dockHost.getComposer().removeTabDock(TabDockFxView.this);
@@ -137,18 +146,6 @@ protected void build() {
137146

138147
}
139148

140-
@Override
141-
protected void addListeners() {
142-
super.addListeners();
143-
var tabPane = getNode();
144-
tabPane.getTabs().addListener((ListChangeListener<Tab>) change -> {
145-
if (tabPane.getTabs().isEmpty()
146-
&& getPresenter().getTransitionState() != TabDockTransitionState.TO_MINIMIZED) {
147-
dockHost.getComposer().removeTabDock(this);
148-
}
149-
});
150-
}
151-
152149
@Override
153150
protected void addHandlers() {
154151
super.addHandlers();

0 commit comments

Comments
 (0)