Did you upgrade the watch firmware to 2v06? This is something that was an issue on the KickStarter watch 2v05 firmware if I recall, but it got fixed pretty soon after.
The widget size thing can be handy - originally they stayed where they were but then if you have something like the GPS recorder widget you really don't want anything showing when it's not enabled, and then when it's enabled you want to be able to pop an icon up.
Obviously changing widget size by the few pixels all the time would be annoying, but for showing/hiding it's pretty handy.
I did update to 2v05 when they arrived, but did not update to 2v06 yet. Obviously this is the cause. I thought to update but since there is currently a discussion about battery drain, I want to keep this one on 2v05 until some some measurements done to establish a base line.
(Conversation title adjusted to reflect status.)
EDIT: 2020.0720-0445 - Conversation title adjusted to fixed state)
Working w/ my BangleJS' and other Espruino boards, I noticed issues with rendering of widgets.
One and the same widget can obviously have different size(s) for different states, which leads to rendering issues when one changes its state. Wether the issue is in or with the size changing widgets or the widgets of one and the other side of it I don't know.
Here is what happens:
I have the 'Tiny Battery Widget (v0.01)' installed in addition to the standard 'Battery Level Widget (v0.05)'. When the BangleJS is charging and display is on and I remove the charging cable, re-rendering happens with color change for the 'Tiny' and plug symbol removed for the standard. Since the plug symbol is gone the 'Tiny' is rendered shifted to the right leaving parts of previously rendering. Turning the Watch on later still shows the odd rendering...
Conclusion not just for code but also for better UX: Widgets should keep always same size in all states... not change size when changing state!