editor: Fix panics that could occur when content mask had negative bounds (#47327)
Anthony Eid
and
Zed Zippy
created
Closes #47157
This panic happened because the editor was using `window.content_mask`
to get the visible bounds, which had a negative value for its height in
some cases.
This happened for three reasons:
1. `Bounds::from_corners` returns a negative size if callers pass in
corners where `bottom_right < top_left`. I originally wanted to add
error checking to this function but didn't, because it might be better
to move the error checking higher up. For now I'm going to push a fix
and figure out a better solution later
2. `Bounds::intersect` could return negative-sized bounds when the two
bounds didn't overlap, instead of returning a zero sized bounds.
3. `Style::paint` sometimes passed invalid corner values to
`Bounds::from_corners` (where the computed bottom-right was above/left
of the top-left).
Release Notes:
- editor: Fix a crash that could happen when editor visible line height
is zero
---------
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>