f12510b
Defer drawing the window until the CoreAnimation `displayLayer:` method is called (#3592)
Click to expand commit body
GPUI (both 1 and 2) currently performs rendering, layout, and painting
at the end of every effect cycle. This leads to poor performance when
the app receives events more frequently than the display refreshes. Such
rapid events can come from a terminal, an LSP, or a mouse with a high
polling rate.
This PR changes GPUI so that we don't render until the OS notifies us
that the content will be presented, via the `displayLayer:` callback.
Because render, layout, and paint have side effects that are sometimes
relied on in tests, we currently keep the old behavior (drawing after
every effects cycle) in tests.
This is similar to what @ForLoveOfCats explored in
https://github.com/zed-industries/zed/pull/3542, but slightly simpler,
in that we're not using the display link. As a follow-up, we could use
the display link to start rendering earlier, to possibly reduce latency
further.
Max Brunsfeld
created
41f55e4
Use `tab.inactiveForeground` from VS Code for muted text color (#3593)
Click to expand commit body
This PR updates the `theme_importer` to pull in the
`tab.inactiveForeground` color from VS Code to use as the muted text
color.
Release Notes:
- N/A
f02a3e8
Fix inactive tab styles (the verbose way) (#3591)
Click to expand commit body
This PR fixes the inactive tab style to properly show the label using
the muted text color.
I went about fixing this in the most direct way possible, but the
solution leaves a lot to be desired, IMO. I plan to explore some ideas
on how we can improve the state of styling the tab content without
having the same styles repeated all over the place and subsequently
out-of-sync.
Release Notes:
- N/A
Marshall Bowers
created
fbfe108
Avoid double borrow in tests by drawing windows explicitly in `flush_effects`
- vim2 compiling (but mostly commented out)
- More code written, similar lack of workingness so far
Still todo:
[ ] Figure out the focus/blur stuff
[ ] Uncoment more code
[ ] Fix VimTestContext
[ ] Uncomment the tests
Release Notes:
- N/A
Conrad Irwin
created
9b94f14
Redraw the window at the end of `flush_effects` in tests
66e0650
Forego using dispatch_action for click handlers
Piotr Osiewicz
created
db39c3d
Fix porting mistake that caused clicking on the editor to misbehave (#3583)
Click to expand commit body
We used `width` instead of `height` in the "pixels-to-point" conversion
code, which would cause clicks to not work correctly when the width was
smaller than the `y` coordinate.
Release Notes:
- N/A
Antonio Scandurra
created
fdc0ef8
Maintain focus correctly when activating panes in zed2 (#3582)
Click to expand commit body
Previously, before emitting a `Focus` event from the pane inside of the
`focus_in` listener, we would erroneously check whether the pane's focus
handle was _not_ focused. However, by the time the pane was notified of
being "focused in", the focus handle would already be focused, which was
preventing the pane from ever emitting a `Focus` event. In turn, this
would cause the workspace to not maintain the active pane correctly.
This pull request maintains an explicit `was_focused` boolean as part of
the `Pane` state, which ensures we only emit the `Focus` event the first
time the pane receives focus.
As part of this, I also reworked how the outline view gets deployed to
allow clicking breadcrumbs even when the corresponding pane doesn't have
focus.
Release Notes:
- N/A