Browse Source

Pull request #7998: REPORT-66947 拖拽拖出可拖拽区域的时候,会导致下次拖拽新组件受到上次拖拽缓存影响的问题

Merge in DESIGN/design from ~FANGLEI/design:final/11.0 to final/11.0

* commit '6ddf7a3e6115907e1423b042fcd8b8da67b3aca3':
  REPORT-66939
  REPORT-66947
  REPORT-66947 拖拽拖出可拖拽区域的时候,没有及时清理内存里残留的上次dropTarget对象,需要清理一下
final/11.0
fanglei 2 years ago
parent
commit
c090c03dbc
  1. 13
      designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java

13
designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java

@ -1248,7 +1248,7 @@ public class FormDesigner extends TargetComponent<Form> implements TreeSelection
* @param currentDragEvent
*/
public void startDraggingNewWidget(XCreator xCreator, MouseEvent startDragEvent, MouseEvent currentDragEvent) {
if (currentDragEvent == null || this.getDropTarget() != null) {
if (currentDragEvent == null) {
return;
}
@ -1270,7 +1270,7 @@ public class FormDesigner extends TargetComponent<Form> implements TreeSelection
* @param currentDragEvent
*/
public void startDraggingFormWidget(XCreator xCreator, MouseEvent startDragEvent, MouseEvent currentDragEvent) {
if (currentDragEvent == null || this.getDropTarget() != null) {
if (currentDragEvent == null) {
return;
}
backUpCreator(xCreator);
@ -1318,7 +1318,14 @@ public class FormDesigner extends TargetComponent<Form> implements TreeSelection
DraggingModel model = this.draggingModel;
MouseEvent dragEvent = model.getCurrentDragEvent();
XCreator hotspot = this.getComponentAt(dragEvent.getX(), dragEvent.getY());
return XCreatorUtils.getHotspotContainer(hotspot);
XLayoutContainer container = XCreatorUtils.getHotspotContainer(hotspot);
XLayoutContainer topLayout = container.getTopLayout();
// REPORT-66939 Tab比较特殊,它是又多个LayoutContainer组成,直接返回container会导致误判,需要先找到最上层topLayout,取其父layout才是正确结果
if (topLayout != null && container != topLayout) {
return (XLayoutContainer) topLayout.getParent();
} else {
return container;
}
}
/**

Loading…
Cancel
Save