Commit log

db43358 Add some small test code for tracking down this list bug

Mikayla created

26a3f68 Tweak mute indicator positioning (#4080)

Click to expand commit body
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

Joseph T. Lyons created

54dcb1d Rename variable

Joseph T. Lyons created

0c59f51 Remove `dbg!()`s

Joseph T. Lyons created

00682b8 Do not reset timer for each reported event

Joseph T. Lyons created

391a61c Play guess who's to blame (#4078)

Click to expand commit body
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

Conrad Irwin created

cce3cf1 Play guess who's to blame

Conrad Irwin created

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.

Marshall Bowers created

c8a6b0d Enable Channels for everyone (#4058)

Click to expand commit body
[[PR Description]]

Release Notes:

- Adds Channels, a new mechanism for collaboration. [Read
More...](https://zed.dev/blog/channels)

Conrad Irwin created

6bcc97e channel management fixes (#4066)

Click to expand commit body
- 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.

Marshall Bowers created

9903b7a Add color ribbon for local player (#4075)

Click to expand commit body
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

![screenshot-2024-01-16-16 48
48@2x](https://github.com/zed-industries/zed/assets/1185253/8c3b977e-333f-403c-a4d3-0911f3fac5e0)

### After

![screenshot-2024-01-16-16 50
13@2x](https://github.com/zed-industries/zed/assets/1185253/2d854eba-c4c4-4bce-b60b-dd250856b08f)

### 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.

Thorsten Ball created

f938bae Use NSScreen to fetch primary display

Click to expand commit body
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

Kirill Bulatov created

25abe8f Fix the tests

Kirill Bulatov created

fbb363e Add tests

Kirill Bulatov created

dde0056 Use srgb, get mix and blend working

Nate Butler created

bdb06f1 Add a rudimentary state color builder

Nate Butler created

1873947 Clippy

Conrad Irwin created

036e637 Disallow self-management for admins

Conrad Irwin created

6223206 Close modals when focus leaves

Click to expand commit body
This is more similar to zed1's behaviour, and allows us to work around
the difficulty in defining `on_mouse_down_out` for modals that have
overlays.

Conrad Irwin created

47971ec Add command palette action events (#4065)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

268d156 Add command palette action events

Joseph T. Lyons created

deac172 Restore re-rendering of editors on buffer font size changes (#4064)

Click to expand commit body
Now that views are cached, we need to explicitly `.notify()` text
editors when the buffer font size changes.

* [x] Notify editors when settings change, or adjusting buffer font size
* [x] Figure out why non-focused editors still do not re-render when
adjusting buffer font size
* [x] Reset buffer font size adjustment when the size is updated in the
user's settings

Max Brunsfeld created

d84785f Put back logic for resetting buffer font adjustment on settings change.

Max Brunsfeld created

1e755aa Notify global observers when removing a global

Max Brunsfeld created

8f1633e Iterate from leaf to root when marking views dirty in notify

Max Brunsfeld created

f220323 Fix fallback font (#4062)

Click to expand commit body
As this is used if you mis-spell "buffer_font_family", it should be
monospace.

Also treat "Zed Mono" and "Zed Sans" as valid fonts

Follow up to #4045

Release Notes:

- Fixes font validation to allow "Zed Mono" as a valid font

Conrad Irwin created

8f26289 Notify editors on buffer font size changes

Max Brunsfeld created

e57c32e Avoid playing newly published audio tracks when deafened (#4040)

Click to expand commit body
Release Notes:

- Fixed a bug where the 'deafen' button would only apply to audio from
the call's current participants, but not any participants who joined
after the button was pressed.
- Fixed a bug where after being granted write access to a channel, the
microphone icon appeared non-muted, even though audio was not shared.

Max Brunsfeld created

e90794d Add and enhance tests for muting/deafening, fix exposed logic errors

Max Brunsfeld created

8c9f3a7 init color crate

Nate Butler created