Make resizable work in vertical axis
Make dock resizable
Have dock preserve size based on Anchor position
Make pane buttons work more correctly in pathological cases
Sync status bar dock button with dock visibility/anchor position
Co-Authored-By Mikayla Maki <mikayla@zed.dev>
Update editor element to use mouse regions instead of dispatch event for mouse events
Fix bug in presenter where mouse region handlers were stored on click and called instead of more up to date handlers from subsequent renders
Changed MouseRegion to require discriminants in all cases
Add scroll wheel event to MouseRegion
Polished a bunch of dock inconsistencies
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
This ensures more deeply-nested entries can be displayed without
needing to show scrollbars. Adding scrollbars introduces UX issues
when creating/renaming files because there are two scroll layers:
the outer project panel AND the editor.
Sublime Text and Atom dodged this issue by not displaying an inline
editor and showing it as a modal instead. VS Code shows the editor
inline but has a much more compact visualization. I think we should
copy VS Code.
This commit introduces a new, optional `Item::tab_description` method
that lets implementers define a description for the tab with a certain
`detail`. When two or more tabs match the same description, we will
increase the `detail` until tabs don't match anymore or increasing the
`detail` doesn't disambiguate tabs any further.
As soon as we find a valid `detail` that disambiguates tabs enough, we
will pass it to `Item::tab_content`. In `Editor`, this is implemented by
showing more and more of the path's suffix as `detail` is increased.
Also, make the `NavHistory` type private to the `workspace` crate.
Expose only the `ItemNavHistory` type, via a method on Pane called
`nav_history_for_item`.