5b0b9ff
Submit bigger primitive batches when rendering
Click to expand commit body
Before this change we wouldn't submit all possible primitives of the
same kind that are less-than the max order.
Result was that we would submit, say, 10 paths each in a separate batch
instead of actually batching them.
This was overly strict because even if the order of two different
primitives was the same, we could have still batched the 1st primitive
kind, if its implicit ordering was less than 2nd kind.
Example: say we have the following primitives and these orders
5x paths, order 3
2x sprites, order 3
Previously, we would submit 1 path, 1 path, 1 path, 1 path, 1 path, then
the sprites.
With this changes, we batch the 5 paths into one batch.
Co-authored-by: Antonio <antonio@zed.dev>
Thorsten Ball
and
Antonio
created
f6b7a06
Fix missing Ctrl-[ bindings in Vim mode (#4086)
Click to expand commit body
This "adds" the keybindings I was missing in Vim mode (e.g. `Ctrl-[` to
cancel a selection) by fixing the definitions in the keymap from
`Ctrl+[` to `Ctrl-[`.
Release Notes:
- Fixed missing `Ctrl-[` keybindings in Vim mode where `Ctrl-[` should
act like `Esc` but didn't.
This "adds" the keybindings I was missing in Vim mode (e.g. `Ctrl-[` to
cancel a selection) by fixing the definitions in the keymap from
`Ctrl+[` to `Ctrl-[`.
Previously, we were using `size_of` but passing the wrong type in
(`MonochromeSprite` instead of `PathSprite`). This caused us to read
outside of the `sprites` smallvec and triggered the segfault. This
reverts #4078 because I don't think using a `SmallVec` was the issue (it
might have masked this problem though, because we would most of the time
copy from the stack and not from the heap).
With this pull request we are also fixing another potential source of
segfaults, due to checking if we exhausted the instance buffer too late
when drawing underlines.
Release Notes:
- Fixed a crash that could happen during rendering.
Antonio Scandurra
created
3789e7e
Stop using button for collab notifications (#4085)
Click to expand commit body
Attempts to fix
<img width="472" alt="Screenshot 2024-01-16 at 19 41 56"
src="https://github.com/zed-industries/zed/assets/2690773/5a8d0691-eabb-4e92-9186-362ca8ef9ca6">
by switching from buttons to labels (so that they can wrap) and adding a
background to them, so they are more visible
<img width="446" alt="image"
src="https://github.com/zed-industries/zed/assets/2690773/bb228aae-0abc-45b4-a0f5-a928a2e64390">
<img width="485" alt="image"
src="https://github.com/zed-industries/zed/assets/2690773/b7fa3598-59b8-4a74-97e6-790695e37047">
Release Notes:
- N/A
Kirill Bulatov
created
39dff0e
Stop using button for collab notifications
Kirill Bulatov
created
9c33790
Check if we exhausted the instance buffer prior to copying underlines
Click to expand commit body
This fixes another potential segfault.
Antonio Scandurra
created
97bd3e1
Fix segfault caused by wrong size of path sprites bytes length
Click to expand commit body
Previously, we were using `size_of` but passing the wrong type in
(MonochromeSprite instead of PathSprite). This caused us to read outside
of the `sprites` smallvec and triggered the segfault.
This PR tweaks the positioning of the mute indicators so that they cover
a little bit less of the avatar:
#### Before
<img width="305" alt="Screenshot 2024-01-16 at 6 32 51 PM"
src="https://github.com/zed-industries/zed/assets/1486634/3f6ad2f4-2c3e-498b-97a4-8b522f3ceda9">
#### After
<img width="311" alt="Screenshot 2024-01-16 at 6 26 48 PM"
src="https://github.com/zed-industries/zed/assets/1486634/37161557-084d-4b69-b61f-a0958e8e867c">
(It's a bit hard to tell in the screenshot, but there is a gap between
the bottom of the indicator and the top of the color ribbon).
Release Notes:
- N/A
Marshall Bowers
created
9cd81ad
Do not reset timer for each reported event (#4079)
Click to expand commit body
Always attempt to flush after the timeout period.
Release Notes:
- N/A
We're occasionally seeing a crash in MetalRenderer::draw.
Looking at the backtrace, it seems almost certainly to be happening in
the call to `ptr::copy_nonoverlapping` on line 604 (see `#Don't Panic!`
channel notes)
As we already have added bounds checking to the destination, it seems
most
likely (however improbable) that somehow we're getting an invalid Ptr
and
length from the SmallVec.
To try and make progress on this, let's try a Vec for a bit lest there
is a subtle issue in SmallVec (though I couldn't spot one).
Release Notes:
- (maybe) Fixes SEGFAULT in MetalRenderer::draw
4e8ad36
Increase border width used to indicate speaking (#4077)
Click to expand commit body
This PR increases the width of the border that we use to indicate when a
call participant is speaking.
This should make it more apparent in the UI when someone is speaking.
Release Notes:
- Increased the width of the ring used to indicate when someone is
speaking in a call.
- Close modals when focus leaves
- Disallow self-management for admins
Release Notes:
- Fixes changing role of invited channel members
Conrad Irwin
created
2e03c84
Add dedicated indicator for showing a muted call participant (#4076)
Click to expand commit body
This PR improves the muted indicators to make it clearer when a call
participant is muted.
Previously we used a red border color to denote when a participant was
muted.
Now we render an indicator with an icon to more clearly indicate the
participant's muted status:
<img width="303" alt="Screenshot 2024-01-16 at 4 05 15 PM"
src="https://github.com/zed-industries/zed/assets/1486634/d30fcd84-48e7-4959-b3c4-1054162c6bd6">
Hovering over the indicator will display a tooltip for further
explanation:
<img width="456" alt="Screenshot 2024-01-16 at 4 05 25 PM"
src="https://github.com/zed-industries/zed/assets/1486634/6345846f-196c-47d9-8d65-c8d86e63f823">
This change also paves the way for denoting the deafened status for call
participants.
Release Notes:
- Improved the mute indicator for call participants.
This PR adds a color ribbon for the local player in the current call.
This fixes the alignment of the local user's avatar so that it lines up
with the rest of the collaborators in the call:
<img width="307" alt="Screenshot 2024-01-16 at 2 56 04 PM"
src="https://github.com/zed-industries/zed/assets/1486634/979ee3fa-70c9-482a-9351-020402ad68b9">
Release Notes:
- Added a color ribbon for the local player when in a call.
Marshall Bowers
created
ff67d9d
Add font name completions to ui_font_family and terminal::font_family
Piotr Osiewicz
created
f011953
Rename all_font_families to all_font_names
Piotr Osiewicz
created
ca4a8b2
Rework `Avatar` indicator to be more general-purpose (#4073)
Click to expand commit body
This PR reworks the way we add indicators to `Avatar`s to make them more
general-purpose.
Previously we had logic specific to the availability indicator embedded
in the `Avatar` component, which made it unwieldy to repurpose for
something else.
Now the `indicator` is just a slot that we can put anything into.
Release Notes:
- N/A
Marshall Bowers
created
d00067c
Switch project search deploy behavior to be isolated to a pane (#4072)
Click to expand commit body
This adjusts the solution in
https://github.com/zed-industries/zed/pull/4014 to fix the double-focus
issue, allowing each pane's project search to work independently.
Release Notes:
- Changed the name of the `workspace::DeploySearch` action to
`pane::DeploySearch` and changed it's behavior to open a new search OR
focus an existing project search in the current pane.
(https://github.com/zed-industries/community/issues/2395)
Mikayla Maki
created
36ff35f
Change name of deploy action to indicate what scope it operates at
Mikayla
created
52267a5
Adjust project search behavior to be isolated to a pane
Mikayla
created
3d041f4
Fix overlapping block headers when using custom line height (#4071)
Click to expand commit body
This fixes block headers overlapping over text in the buffer when using
a custom line height of 1.25.
It fixes the issue by making the parent container a v-flex,
vertically-justifying the content and moving from relative padding to
absolute padding for the header itself.
## Before/After
With setting:
```json
"buffer_line_height": {
"custom": 1.25
},
```
### Before

### After

### Release notes
Release Notes:
- Fixed headers in multi-buffers overlapping over content of the buffer
Thorsten Ball
created
60b79ef
Prevent content mask breaks from having the same z-index
Click to expand commit body
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
Julia
and
Antonio Scandurra
created
4f25df6
Prevent div background/content/border from interleaving at same z-index
Click to expand commit body
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
Julia
and
Antonio Scandurra
created
62f5bec
Fix rustfmt by pulling out long string into constant
Thorsten Ball
created
1cbdf2b
Fix overlapping block headers when using custom line height
Click to expand commit body
This fixes block headers overlapping over text in the buffer when using
a custom line height of 1.25.
It fixes the issue by making the parent container a v-flex,
vertically-justifying the content and moving from relative padding to
absolute padding for the header itself.
Co-authored-by: antonio <antonio@zed.dev>
Co-authored-by: julia <julia@zed.dev>
Co-authored-by: marshall <marshall@zed.dev>
Thorsten Ball
,
antonio
,
julia
, and
marshall
created
47f2d55
Revert "Use taffy to retrieve the parent for a given layout node" (#4070)
Click to expand commit body
This reverts commit 5904bcf1c20638d63b244a1b2b038ec9a664ba1c.
Release Notes:
- N/A
Antonio Scandurra
created
4e0c8dc
Revert "Use taffy to retrieve the parent for a given layout node"
Click to expand commit body
This reverts commit 5904bcf1c20638d63b244a1b2b038ec9a664ba1c.
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
Julia
and
Antonio Scandurra
created
0bf66e4
Call CGGetActiveDisplayList once to avoid panic (#4069)
Click to expand commit body
This contains two changes in order to hopefully avoid the panic we saw
in #panics:
```
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value'
crates/gpui/src/platform/mac/display.rs:30
<backtrace::capture::Backtrace as core::fmt::Debug>::fmt
<backtrace::capture::Backtrace as core::fmt::Debug>::fmt
Zed::init_panic_hook::{closure#0}
std::panicking::rust_panic_with_hook
std::panicking::rust_panic_with_hook
std::sys_common::backtrace::output_filename
<std::panicking::begin_panic_handler::FormatStringPayload as core::panic::PanicPayload>::take_box
core::panicking::panic_fmt
core::panicking::panic
gpui::platform::mac::display::display_bounds_to_native
<gpui::platform::mac::window::MacWindow as gpui::platform::PlatformWindow>::bounds
<gpui::window::WindowContext>::window_bounds_changed
<gpui::window::Window>::new::{closure#1}
gpui::platform::mac::window::view_did_change_backing_properties
<gpui::platform::mac::platform::MacPlatform as gpui::platform::Platform>::run
Zed::main
<core::marker::PhantomData<core::option::Option<Zed::LocationData>> as serde::de::DeserializeSeed>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::StrRead>>
workspace::open_new::<Zed::restore_or_create_workspace::{closure#0}::{closure#0}::{closure#0}::{closure#2}::{closure#0}>::{closure#0}::{closure#0}
std::rt::lang_start_internal
serde_json::de::from_trait::<serde_json::read::StrRead, core::option::Option<Zed::Panic>>
```
Two changes:
* Reduce the number of calls to `CGGetActiveDisplayList` in the hopes
that this will also reduce chances of it returning an empty list.
Previously, in the worst case, we called it 6 times. Now the worst case
is that we call it 3 times.
* Instead of calling `CGGetActiveDisplayList` to get the primary display
we do what Chromium does and construct the primary display from
NSScreen.
Release Notes:
- Fixed a bug that caused a panic that could happen when Zed attempted
to render on a sleeping display.
According to Chromium source, `NSScreen::screens` should always get us
one display.
We made this change because we ran into panics caused by the previous
`unwrap()` when `CGGetActiveDisplayList` might return an empty list.
Thorsten Ball
created
03bfe3e
Call CGGetActiveDisplayList once to avoid panic
Click to expand commit body
Previously we called CGGetActiveDisplayList twice: once to get the
number of displays and then to get the displays.
We saw a panic due to no displays being returned here. As a first
attempt to fix the panic, we're reducing the amount of calls to
CGGetActiveDisplayList and just do one with the trade-off being that we
pre-allocate 32 pointers in a Vec.
Thorsten Ball
created
ed78f70
Fix previous theme not being applied on startup (#4068)
Click to expand commit body
Fixes `[2024-01-16T09:21:54Z ERROR util]
crates/theme/src/settings.rs:172: theme not found: One Light` error from
the log after
https://github.com/zed-industries/zed/commit/d84785f7e8519b30e474385e5a72f5726cf4783e
Release Notes:
- N/A
Kirill Bulatov
created
0749664
Fix previous theme not being applied on startup
Kirill Bulatov
created
ec3cfc3
Adds a way to select items under multiple carets (#4067)
Click to expand commit body
Deals with https://github.com/zed-industries/community/issues/2374
Release Notes:
- Added a way to select items under multiple carets with
`editor::SelectNext` and `editor::SelectPrevious` commands