Launcher
Launcher copied to clipboard
Widget resizing sometimes starts at incorrect position
Checklist
- [x] I can reproduce the bug with the latest version given here.
- [x] I made sure that there are no existing issues - open or closed - to which I could contribute my information.
- [x] I made sure that there are no existing discussions - open or closed - to which I could contribute my information.
- [x] I have read the FAQs inside the app (Menu -> About -> FAQs) and my problem isn't listed.
- [x] I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.
- [x] This issue contains only one bug.
- [x] I have read and understood the contribution guidelines.
Affected app version
latest commit 8c3a74aae9451ba0fa23041988b172b62b3cc217, and 1.0.1 release
Affected Android/Custom ROM version
Android 12
Affected device model
Nokia 5.4
How did you install the app?
Built from source
Steps to reproduce the bug
- Add a resizable widget to the homescreen, and resize it to 3x3
- Long press on widget, select resize
- Move left drag point one cell to the right
- Exit resize view
- Resize same widget
- Move left drag point one cell to the left
- Exit resize view
- Resize same widget
Expected behavior
Resizing should work as expected. No unexpected jumps in widget position.
Actual behavior
After step 2, 5 or 8 the widget jumps one cell to the left or right (seemingly dependent on some previous state).
Screenshots/Screen recordings
I can record the issue if you cannot reproduce it.
Additional information
The resizable widget I reproduced the issue with is from my own app, but it does little more than the example widget that was automatically generated.
The issue can be fixed by adding the following to binding.resizeFrame.onResizeListener in HomeScreenGrid, but it seems like a bit of a hack:
gridItems.filterVisibleOnCurrentPageOnly().filter { it.id == item.id }.forEach { gridItem ->
gridItem.left = item.left
gridItem.top = item.top
gridItem.right = item.right
gridItem.bottom = item.bottom
}