Skip to content

Commit 0e0f121

Browse files
committed
fix #1027 Cant cleanly remove MenuTarget from Menu - aka Menu.setTarget(null) fails with NPE
1 parent 224577b commit 0e0f121

File tree

1 file changed

+8
-3
lines changed
  • domino-ui/src/main/java/org/dominokit/domino/ui/menu

1 file changed

+8
-3
lines changed

domino-ui/src/main/java/org/dominokit/domino/ui/menu/Menu.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1607,6 +1607,11 @@ public Menu<V> setTargetElement(Element targetElement) {
16071607
* @return The current {@link Menu} instance.
16081608
*/
16091609
public Menu<V> setTarget(MenuTarget menuTarget) {
1610+
clearTargets();
1611+
return addTarget(menuTarget);
1612+
}
1613+
1614+
public Menu<V> clearTargets() {
16101615
this.targets()
16111616
.values()
16121617
.forEach(
@@ -1616,11 +1621,11 @@ public Menu<V> setTarget(MenuTarget menuTarget) {
16161621
.removeEventListener(
16171622
isContextMenu() ? EventType.contextmenu.getName() : EventType.click.getName(),
16181623
openListener);
1619-
target.getTargetElement().removeDetachObserver(menuTarget.getTargetDetachObserver());
1620-
target.getTargetElement().removeAttachObserver(menuTarget.getTargetAttachObserver());
1624+
target.getTargetElement().removeDetachObserver(target.getTargetDetachObserver());
1625+
target.getTargetElement().removeAttachObserver(target.getTargetAttachObserver());
16211626
});
16221627
this.targets().clear();
1623-
return addTarget(menuTarget);
1628+
return this;
16241629
}
16251630

16261631
/**

0 commit comments

Comments
 (0)