소스 검색

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());
}

/**

Loading…
취소
저장