Skip to content

Widget resets into illegal position when released out of bounds following a swap (using maxRow) #3021

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
arjenvklaveren opened this issue Apr 14, 2025 · 1 comment

Comments

@arjenvklaveren
Copy link

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)
@adumesny
Copy link
Member

adding pictures to these steps:

Image
start dragging item 1 to left
Image
drag out and release outside
Image
you end up overlapping (item 1 goes back to original instead of last placeholder OR reset original layout)
Image

this is rather corner case

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants