You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Widget resets into illegal position when released out of bounds following a swap (using maxRow) #3021
Description:
While working with the library I noticed that sometimes my widgets completely dissapeared, and after some investigating I discovered that they are not deleted, but rather overlap with eachother. This behaviour happens when an item gets reset out of bounds after it has swapped with another widget. I tried to find the root of the problem, which seems to be caused by me using the maxRow setting, specifically maxRow = 1, but it most likely also occurs with other amounts. This behaviour does not happen without the maxRow limitation, as it then instead pushes the other widget down vertically. The problem can be observed in the 'two vertical grids' demo: https://gridstackjs.com/demo/two_vertical.html
Steps to reproduce:
Open the 'two vertical grids' demo
Start dragging a widget
Drag over another widget (in the same grid), triggering them swapping
Drag the widget outside of bounds, resetting it
The widget is now behind the other widget
Expected behaviour:
The state of the grid should get reset to before the widget gets dragged (without the swapping)
Or, the other widget gets pushed horizontally instead (which I imagine is quite troublesome to implement)
start dragging item 1 to left
drag out and release outside
you end up overlapping (item 1 goes back to original instead of last placeholder OR reset original layout)
Activity
adumesny commentedon Apr 14, 2025
adding pictures to these steps:
start dragging item 1 to left
drag out and release outside
you end up overlapping (item 1 goes back to original instead of last placeholder OR reset original layout)
this is rather corner case
correctly reset widget back
adumesny commentedon Aug 10, 2025
fixed in next release. don't foret to donate if you find this lib useful!