This patch refines the current logic for rounding the menu corners of
pulldown menus.
Currently we only check, whether the menu is drawn above/below the
button and then round the top/bottom corners. The patch extends the
behavior so all corners of the pulldown menu that are not directly
attached to the button it's spawned from are rounded.
| current | patch (roundness = 0.4) | patch (roundness = 1.0) |
From my testing the current implementation handles all corner cases and
overall behaves the way I want it to.
On the other hand I feel this is a bit of a hack.
The implementation works by not only storing one direction for the block
of the pulldown to note if it's above of below the button, but also an
additional direction flag to know, how the pulldown is aligned to the
button: is it left-aligned, right-aligned or not aligned at all.
Because currently pulldown menus are either drawn above or below the
button emitting them, we can get away with storing both direction flags
in block->direction by assuming that up/down is the primary direction
and then only using the left/right flag to round the remaining corner,
if it doesn't sit flush with the button.





