In the end I think people might be surprised by the default behavior to
clip corners, so I've opted to split this behavior into a separate
component that defaults to no corner radius.
The last fix had a panic where a guard should have been allowed to be
created. Change callbacks detect when they are about to be fired from
themselves, and prevent the deadlock.
Very hard to intentionally reproduce, thankfully the second time I saw
it I was in the debugger and was able to reason about the code path that
could have gotten in that particular state. Comment explains the actual
situation.
On some platforms, notably Wayland, the window immediately responds to
resize requests. This means that if the window resizes itself during the
prepare operation, the current graphics context is no longer the correct
size for the window. Before this change, Kludgine was working around
this by noticing the discrepency and forcing an extra refresh. This
workaround is still in place in Kludgine, but now Cushy supports
restarting redrawing upon resize.
Due to complexities in input routing and how that interacts with layers,
it seemed prudent to support installing shortcuts directly on the
window.
This also enables overriding default shortcuts like Primary+W to close
the window.
These aren't entries in the changelog since they're bug fixes for new
code since the last release -- the entries on the changelog are
unaffected.
- focused and occluded no longer is explicitly set to false. Now, once
the window has been fully initialized, the values are read from winit
which will cause callbacks to be fired if the value has changed.
- The automatic_layout parameter if outer_position had its meaning
inverted. Passing true now properly ensures the window is
automatically positioned.