From 9fec38c109c1316a72c78fbc2d05257c1ad20111 Mon Sep 17 00:00:00 2001 From: Dimitar Vasilev Date: Tue, 23 May 2017 13:40:54 +0200 Subject: [PATCH] Update GridConstrainedDropController.java Adding the ability of the oMove method to account for the level of top and left scrolling. --- .../gwt/dnd/client/drop/GridConstrainedDropController.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/DragDrop/src/com/allen_sauer/gwt/dnd/client/drop/GridConstrainedDropController.java b/DragDrop/src/com/allen_sauer/gwt/dnd/client/drop/GridConstrainedDropController.java index bcf1a9a3..dabfbd8c 100644 --- a/DragDrop/src/com/allen_sauer/gwt/dnd/client/drop/GridConstrainedDropController.java +++ b/DragDrop/src/com/allen_sauer/gwt/dnd/client/drop/GridConstrainedDropController.java @@ -46,13 +46,16 @@ public void drop(Widget widget, int left, int top) { @Override public void onMove(DragContext context) { super.onMove(context); + int scrollLeft = context.draggable.getParent() != null ? Math.round(context.draggable.getParent().getElement().getScrollLeft()) : 0; + int scrollTop = context.draggable.getParent() != null ? Math.round(context.draggable.getParent().getElement().getScrollTop()) : 0; + for (Draggable draggable : draggableList) { draggable.desiredX = context.desiredDraggableX - dropTargetOffsetX + draggable.relativeX; draggable.desiredY = context.desiredDraggableY - dropTargetOffsetY + draggable.relativeY; draggable.desiredX = Math.max(0, Math.min(draggable.desiredX, dropTargetClientWidth - - draggable.offsetWidth)); + - draggable.offsetWidth + scrollLeft)); draggable.desiredY = Math.max(0, Math.min(draggable.desiredY, dropTargetClientHeight - - draggable.offsetHeight)); + - draggable.offsetHeight + scrollTop)); draggable.desiredX = Math.round((float) draggable.desiredX / gridX) * gridX; draggable.desiredY = Math.round((float) draggable.desiredY / gridY) * gridY; dropTarget.add(draggable.positioner, draggable.desiredX, draggable.desiredY);