This was broken because of the async hop introduced by should_dismiss.
Change that API to instead be syncronous, and require that implementors
(of which there is only one) to call dismiss again if they want to.
This PR fixes the sizing of the workspace, specifically with regards to
the center pane.
This fixes the issue where the tab bar would get clipped when its width
exceeded the size of the screen.
<img width="1298" alt="Screenshot 2023-12-12 at 8 36 15 PM"
src="https://github.com/zed-industries/zed/assets/1486634/592d7c6d-6901-4bd4-b5e7-e30bcad67e21">
Release Notes:
- N/A
This PR enables scrolling horizontally in the tab bar.
Currently this requires holding down <kbd>Shift</kbd> for the scroll to
activate. We'll need to look into this.
Scrolling also currently works when there is a split in the editor, as
the non-split view goes down a different rendering path that does not
constrain the pane width, which breaks a number of things.
Release Notes:
- N/A
This PR extracts a new `TabBar` component from the tab bar
implementation in the workspace.
Release Notes:
- N/A
Marshall Bowers
created
31a4892
Avoid notifying editor when wrap width changes (#3612)
Click to expand commit body
Wrap width is already assigned from within draw. It can be called
multiple times as taffy iteratively computes the layout.
This fixes a hang we were seeing in nightly when opening the chat panel.
Max Brunsfeld
created
f5ca514
Avoid notifying editor when wrap width changes
Click to expand commit body
Wrap width is already assigned from within draw. It can be called multiple
times as taffy iteratively computes the layout.
Co-authored-by: Nathan <nathan@zed.dev>
b3e1514
Avoid caching zed build script if git state has changed (#3610)
Click to expand commit body
@as-cii and @SomeoneToIgnore noticed a bug where Zed nightly would
continuously report that an update was available. This nightly
auto-update logic depends on the `ZED_COMMIT_SHA` constant, which is
compiled into the app via an rustc environment variable that is assigned
in the `zed2` build script.
I think the bug was caused by the `zed2` build script's output being
cached on our CI, when building the nightly app bundle. The result was
that the `publish-nightly` action updated the "current SHA" for nightly,
but uploaded an artifact whose `ZED_COMMIT_SHA` was cached from an
earlier version.
I've added a line to the `build.rs` that triggers a rerun if the
`.git/logs/HEAD` file has been changed. I think this should prevent the
unwanted caching.
We were registering `deploy` only on editors, which did succeed for
channel notes; however, channel note does not have an associated
workspace (that we pulled from the editor). It made more sense to just
register these actions for a workspace, notwithstanding the editor.
This PR also fixes a bunch of cx.dispatch_action calls to call the
handler directly instead (e.g. instead of dispatching ReplaceNext we
just call buffer_search_bar.replace_next instead) as otherwise these
actions are not handled if the buffer search bar does not have the
focus.
Release Notes:
- N/A
Piotr Osiewicz
created
a334a21
Prevent panes from overflowing the window (#3609)
Click to expand commit body
This PR fixes an issues where it was possible for panes to overflow the
window (for instance, by having a large number of tabs in the tab bar).
Release Notes:
- N/A
Marshall Bowers
created
c0846d6
Set cursor style only if we're the active window (#3607)
Click to expand commit body
Release Notes:
- N/A
Antonio Scandurra
created
13f9fec
fixup! Move away from using cx.dispatch_action in buffer search
Piotr Osiewicz
created
be57059
Move away from using cx.dispatch_action in buffer search
Piotr Osiewicz
created
b87c45e
Set cursor style only if we're the active window
* Fixed dock toggling not focusing the terminal element
* Fixed loosing focus on dock close (e.g. cmd-d on the last terminal in
the dock)
* Removed element stateless focus API since it would not work when the
element is not rendered, update all API usages to the stateful one via
`gpui::Subscription`
Release Notes:
- N/A
97eae4b
Improve rendering performance in `gpui2` (#3605)
Click to expand commit body
The biggest improvements come from preventing element moves where
unnecessary, and when they are absolutely needed, try to make the struct
we're moving as small as possible. Having big structs on the stack (such
as `Interactivity`) increases the cost of moving but also reduces
opportunities for other compiler optimizations (e.g., inlining).
One more notable change was using `FxHashMap` and `FxHashSet` in hot
code paths where we don't need those collections to be resistant to DoS.
Another thing I am seeing a lot in the profiler is interacting with
`StackingOrder` (cloning it, searching for it, inserting into the
`Scene`). I have some thoughts on how to optimize that but I punted on
it because performance seems to be pretty good now.
Release Notes:
- N/A
Antonio Scandurra
created
6159a59
Fix assertions now that we use different hash functions