浏览代码

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 年前
父节点
当前提交
1ee652d48c
共有 1 个文件被更改,包括 4 次插入3 次删除
  1. 4
    3
      client/src/com/vaadin/client/ui/orderedlayout/VAbstractOrderedLayout.java

+ 4
- 3
client/src/com/vaadin/client/ui/orderedlayout/VAbstractOrderedLayout.java 查看文件

@@ -209,8 +209,10 @@ public class VAbstractOrderedLayout extends FlowPanel {
* @return
*/
public void removeWidget(Widget widget) {
Slot slot = widgetToSlot.get(widget);
removeSlot(slot);
Slot slot = widgetToSlot.remove(widget);
if (slot != null) {
removeSlot(slot);
}
}

/**
@@ -226,7 +228,6 @@ public class VAbstractOrderedLayout extends FlowPanel {
*/
protected void removeSlot(Slot slot) {
remove(slot);
widgetToSlot.remove(slot.getWidget());
}

/**

正在加载...
取消
保存