Browse Source

Fix VAbstractOrderedLayout widget removal race condition (#18703)

Removing a widget that got moved to another layout occasionally caused
slot to lose track of related widget. As a result the layout never
created a new slot when the same widget is put back in there.

Change-Id: I0d8793324b8a5ac8a06aa2803ac8de22b90b7545
tags/7.6.0.beta1^0
Teemu Suo-Anttila 8 years ago
parent
commit
1ee652d48c

+ 4
- 3
client/src/com/vaadin/client/ui/orderedlayout/VAbstractOrderedLayout.java View File

* @return * @return
*/ */
public void removeWidget(Widget widget) { public void removeWidget(Widget widget) {
Slot slot = widgetToSlot.get(widget);
removeSlot(slot);
Slot slot = widgetToSlot.remove(widget);
if (slot != null) {
removeSlot(slot);
}
} }


/** /**
*/ */
protected void removeSlot(Slot slot) { protected void removeSlot(Slot slot) {
remove(slot); remove(slot);
widgetToSlot.remove(slot.getWidget());
} }


/** /**

Loading…
Cancel
Save