Launcher icon indicating copy to clipboard operation
Launcher copied to clipboard

Widget resizing sometimes starts at incorrect position

Open FliegendeWurst opened this issue 9 months ago • 0 comments

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

  1. Add a resizable widget to the homescreen, and resize it to 3x3
  2. Long press on widget, select resize
  3. Move left drag point one cell to the right
  4. Exit resize view
  5. Resize same widget
  6. Move left drag point one cell to the left
  7. Exit resize view
  8. 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
}

FliegendeWurst avatar Mar 03 '25 09:03 FliegendeWurst