resizemove edges case handling is incomplete
Closed this issue · 1 comments
nickolas1 commented
Expected Behavior
Resizing from any edge or corner behaves as expected
Current Behavior
The majority of edges and corners result in the size of the item being shrunk to the minimum size
Failure Information (for bugs)
Steps to Reproduce
- run the test bench app
- resize an item from the bottom right corner- works as expected
- resize an item from the left, right, bottom, or top edge
- observe the item immediately shrink to a 1x1 square
Context
this seems to be because the cases handling different combinations of edges are incomplete. These lines in GridItem.vue do not handle all cases
if(edges.left && edges.bottom) {
newSize.width = (Number(resizing.value?.width) - coreEvent.deltaX) / transformScale.value;
newSize.height = (Number(resizing.value?.height) + coreEvent.deltaY) / transformScale.value;
} else if(edges.right && edges.bottom && !edges.left && !edges.top) {
newSize.width = (Number(resizing.value?.width) + coreEvent.deltaX) / transformScale.value;
newSize.height = (Number(resizing.value?.height) + coreEvent.deltaY) / transformScale.value;
} else if(edges.left && edges.top && !edges.bottom && !edges.right) {
//
} else if(edges.right && edges.top && !edges.bottom && !edges.left) {
//
} else if(edges.right && !edges.right && !edges.bottom && !edges.top) {
newSize.width = (Number(resizing.value?.width) + coreEvent.deltaX) / transformScale.value;
}
Something like this seems to be more comprehensive:
if (edges.left) {
newSize.width = (Number(resizing.value?.width) - coreEvent.deltaX) / transformScale.value;
} else if (edges.right) {
newSize.width = (Number(resizing.value?.width) + coreEvent.deltaX) / transformScale.value;
} else {
newSize.width = resizing.value.width;
}
if (edges.top) {
newSize.height = (Number(resizing.value?.height) - coreEvent.deltaY) / transformScale.value;
} else if (edges.bottom) {
newSize.height = (Number(resizing.value?.height) + coreEvent.deltaY) / transformScale.value;
} else {
newSize.height = resizing.value.height;
}
gwinnem commented
Reduced possibillitites for resizing.
- Resize from top right removed.
- Resize from top left removed.
- Resize from left removed.
- Resize from top removed.
- Fixed resize from bottom.
- Fixed resize from right.
- Updated resize from bottom right