Commit Graph

16702 Commits

Author SHA1 Message Date
Marshall Bowers
8cb291baa4 Take a different approach to rendering channel buttons (#3991)
This PR changes the approach we're using to render the channel buttons
to use a more straightforward (and less hacky) approach.

### Motivation

Even with the variety of hacks that were employed to make the current
approach work, there are still a number of issues with the current
solution:

- Hovering in the empty space to the left of a channel doesn't correctly
apply the hover background to the container for the channel buttons
- Hovering to the very right of the collab panel (right on top of the
drag handle) causes the channel button container to apply its hover
background without applying it to the rest of the row
- The buttons would still get pushed off to the right by the indent
space in the channel tree, resulting in jagged indicators at small sizes

Additionally, the rectangular background placed behind the channel
buttons still didn't look great when it overlapped with the channel
names.

### Explanation

For these reasons, I decided to explore a simpler approach that
addresses these issues, albeit with some tradeoffs that I think are
acceptable.

We now render the absolutely-positioned button container as a sibling
element of the `ListItem`. This is to avoid issues with the container
getting pushed around based on the contents of the `ListItem` rather
than staying absolutely positioned at the end of the row.

We also have gotten rid of the background for the button container, and
now rely on the background of the individual `IconButton`s to occlude
the channel name behind them when the two are overlapping.

Here are some examples of the new UI in various configurations:

#### When the channel entry is hovered

<img width="270" alt="Screenshot 2024-01-09 at 6 15 24 PM"
src="https://github.com/zed-industries/zed/assets/1486634/0207a129-30eb-4067-8490-3b6c9cbf75ea">

#### Overlapping with the channel name

<img width="229" alt="Screenshot 2024-01-09 at 6 15 43 PM"
src="https://github.com/zed-industries/zed/assets/1486634/0a67507e-45c8-4325-a71e-d416edc3a115">

#### Narrow collab panel

<img width="116" alt="Screenshot 2024-01-09 at 6 16 07 PM"
src="https://github.com/zed-industries/zed/assets/1486634/887ebaa3-e4d6-4497-9141-afcc8b7cd356">

### Tradeoffs

The new approach comes with the following tradeoffs that I am currently
aware of:

The occlusion can look a little weird when the icons are in the middle
of a channel name (as opposed to fully occluding the end of the channel
name):
<img width="190" alt="Screenshot 2024-01-09 at 6 24 32 PM"
src="https://github.com/zed-industries/zed/assets/1486634/0062b806-1b8f-47eb-af8d-f061d9829366">

Hovering one of the icons causes the icon to be hovered instead of the
row:

<img width="232" alt="Screenshot 2024-01-09 at 6 31 38 PM"
src="https://github.com/zed-industries/zed/assets/1486634/cbcc1a45-64d2-4890-8ad6-c5a5ee961b86">

Release Notes:

- Improved the way channel buttons are displayed.
2024-01-09 18:39:29 -05:00
Marshall Bowers
684bd530f0 ui: Fix doc tests (#3989)
There were a ton of doc tests that weren't compiling in the `ui` crate,
so this PR fixes them.

Release Notes:

- N/A
2024-01-09 16:56:28 -05:00
Max Brunsfeld
68d0b468f3 Remove unnecessary mutexes from livekit client types (#3984)
We had introduced these mutexes at a time when `gpui2` required app
entities to be `Sync`, but they are no longer needed. Removing them now
because we're trying to find out why we're sometimes getting crashes and
deadlocks in livekit, and we didn't before.
2024-01-09 13:40:27 -08:00
Conrad Irwin
0daa2bf7f4 Fix panic in set_scroll_anchor_remote (#3987)
If the remote sends us an invalid scroll position, we should not panic.

Release Notes:

- Fix a panic receiving scroll positions out of order
2024-01-09 14:39:06 -07:00
Kirill Bulatov
18e537abdf Do not dismiss buffer search when any modal is present (#3988)
Release Notes:

- Fixed buffer search being dismissed not after the modals are
2024-01-09 23:36:32 +02:00
Kirill Bulatov
8b71b1d07b Do not dismiss buffer search when any modal is present
Co-authored-by: Piotr Osiewicz <piotr@zed.dev>
2024-01-09 23:29:05 +02:00
Marshall Bowers
a579ef17d7 Rename Shape to AvatarShape (#3986)
This PR renames the `Shape` enum to `AvatarShape`, since it seems pretty
specific to `Avatar`s.

Release Notes:

- N/A
2024-01-09 16:21:27 -05:00
Conrad Irwin
a46947d5d7 Fix panic in set_scroll_anchor_remote 2024-01-09 14:19:48 -07:00
Max Brunsfeld
e3c603f41b Make RemoteTrackPublication a tuple struct again 2024-01-09 12:54:51 -08:00
Max Brunsfeld
356f9fc3b6 Store a raw Room pointer on RoomDelegate 2024-01-09 12:50:00 -08:00
Marshall Bowers
7ed3f5f392 Clean up references in doc comments in ui and theme crates (#3985)
This PR cleans up a number of references in doc comments in the `ui` and
`theme` crates so that `rustdoc` will link and display them correctly.

Release Notes:

- N/A
2024-01-09 15:22:36 -05:00
Mikayla Maki
447bfca942 Add a test to catch keybinding bounds issue (#3966)
Add a test to catch regressions to
https://github.com/zed-industries/zed/pull/3964

Thanks for the idea @ConradIrwin 

TODO:

- [ ] Fix immediate stack overflow in test

Release Notes:

- N/A
2024-01-09 12:03:48 -08:00
Max Brunsfeld
128a8ff0b9 Remove unnecessary mutexes from livekit client types
Co-authored-by: Conrad <conrad@zed.dev>
2024-01-09 12:02:29 -08:00
Nate Butler
510234ca71 Add some Theme and UI docs (#3979)
Documents a number of items in the `theme` and `ui` crates.

Release Notes:

- N/A
2024-01-09 15:00:21 -05:00
Mikayla
1728c4eacc Fixed test 2024-01-09 11:52:03 -08:00
Julia
5b1894a9b1 Take into account multiple scroll deltas within a single frame (#3982)
Release Notes:

- Fixed an issue where all but the last scroll event would be dropped if
there were multiple within a single frame.
2024-01-09 14:51:26 -05:00
Nate Butler
51988f63d5 Document more enums 2024-01-09 14:50:04 -05:00
Marshall Bowers
74dadd68d2 Clean up references in doc comments (#3983)
This PR cleans up a number of references in doc comments so that
`rustdoc` will link and display them correctly.

Release Notes:

- N/A
2024-01-09 14:48:48 -05:00
Julia
463270ed36 Take into account multiple scroll deltas within a single frame
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2024-01-09 14:32:43 -05:00
Nate Butler
c19551d974 Document free functions 2024-01-09 14:21:29 -05:00
Nate Butler
cb24062e79 Restore removed ColorScaleStep ALL that was breaking the build 2024-01-09 14:16:50 -05:00
Nate Butler
e020d7ca11 Document ui crate traits 2024-01-09 14:15:25 -05:00
Nathan Sobo
00c3afd330 Add documentation to GPUI (#3980)
🍐d with @conrad @mikayla-maki on covering some of the surface area.

Release Notes:

- N/A
2024-01-09 12:10:53 -07:00
Nathan Sobo
42cbd103fb Even more docs
Co-authored-by: Conrad <conrad@zed.dev>
2024-01-09 12:02:12 -07:00
Nate Butler
46065c2621 Fix unclosed delimiter 2024-01-09 13:52:11 -05:00
Nate Butler
7dbe0519ec Add label docs 2024-01-09 13:49:27 -05:00
Nate Butler
324fd24709 Initial button documentation
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2024-01-09 13:39:15 -05:00
Nathan Sobo
458c672a72 Add more API docs
Co-Authored-By: Conrad <conrad@zed.dev>
2024-01-09 11:16:56 -07:00
Nate Butler
5359762051 Document components/avatar
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2024-01-09 13:04:55 -05:00
Nathan Sobo
59f41acb82 Add a bunch of docs
Co-Authored-By: Conrad <conrad@zed.dev>
Co-Authored-By: Mikayla <mikayla@zed.dev>
2024-01-09 11:02:57 -07:00
Nate Butler
9747c10ce8 Document UI modules
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2024-01-09 12:57:12 -05:00
Nate Butler
bcbfa7d036 Start documenting Theme crate
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2024-01-09 12:49:56 -05:00
Piotr Osiewicz
ab6cd1d93a chore: cfg(test) a test in rpc. (#3978)
The test in particular should be included in our release binary at
present. :/
Release Notes:

- N/A
2024-01-09 18:00:54 +01:00
Marshall Bowers
824d06e2b2 Remove Default impl for StatusColors (#3977)
This PR removes the `Default` impl for `StatusColors`.

Since we need default light and dark variants for `StatusColors`, we
can't use a single `Default` impl.

Release Notes:

- N/A
2024-01-09 11:31:19 -05:00
Piotr Osiewicz
d374953180 search: Remove newlines from query used for tab_content. (#3976)
Fixes https://github.com/zed-industries/community/issues/2388
Release Notes:

- Fixed tab content of project search overflowing the tab for queries
with newlines.
2024-01-09 17:16:25 +01:00
Marshall Bowers
f0ef63bfa0 gpui: Add SharedUrl type (#3975)
This PR adds a `SharedUrl` type to GPUI.

It's just like a `SharedString`, but for denoting that the contained
value is a URL.

Mainlined from @nathansobo's GPUI blog post:
https://github.com/zed-industries/zed/pull/3968/files#diff-7ee75937e2daf7dd53f71b17698d8bd6d46993d06928d411781b9bd739b5f231R9-R12

Release Notes:

- N/A
2024-01-09 10:55:49 -05:00
Marshall Bowers
fa53353c57 Rename IconElement to just Icon (#3974)
This PR renames the `IconElement` component to just `Icon`.

This better matches the rest of our components, as `IconElement` was the
only one using this naming convention.

The `Icon` enum has been renamed to `IconName` to free up the name.

I was trying to come up with a way that would allow rendering an
`Icon::Zed` directly (and thus make the `IconElement` a hidden part of
the API), but I couldn't come up with a way to do this cleanly.

Release Notes:

- N/A
2024-01-09 10:11:20 -05:00
Piotr Osiewicz
29ed067b26 Add a missing default value to docs (#3973)
Release Notes:

- N/A
2024-01-09 12:20:52 +01:00
Kirill Bulatov
a0f9393c1f Remove some todo!'s from the code (#3972)
Release Notes:

- N/A
2024-01-09 11:45:09 +02:00
Kirill Bulatov
625c9d8980 Remove some todo!'s 2024-01-09 11:36:36 +02:00
Kirill Bulatov
aa1d2d2f24 Remove dbg! usage from tests 2024-01-09 10:08:27 +02:00
Marshall Bowers
4afa5fb23e Add stories for collab notifications (#3967)
This PR adds some basic stories for collab notifications to make them
easier to work on:

<img width="1076" alt="Screenshot 2024-01-08 at 9 43 39 PM"
src="https://github.com/zed-industries/zed/assets/1486634/4a0adcfa-1134-49c2-b589-74ac1d52af4c">

I factored out a `CollabNotification` component that defines the general
structure for one of these notifications, and this is the component that
we use in the stories, with representative values passed to it to
simulate the different instances of the notification.

We can't use the actual notification components in the stories due to
their data dependencies.

Release Notes:

- N/A
2024-01-08 21:54:59 -05:00
Mikayla
27d4d727c3 Attempt to write test 2024-01-08 18:21:54 -08:00
Marshall Bowers
c40a7f3445 Stop propagation when deploying the context menu for a project panel entry (#3965)
This PR fixes an issue where right-click on any project panel entry
would cause the context menu on the root of the project panel
(introduced in #3954) to deploy.

We need to stop propagation in the handler on the inner project panel
list items so that the click event doesn't bubble up the tree.

Release Notes:

- Fixed an issue where the project panel was always deploying the root
context menu rather than on the clicked item.
2024-01-08 20:51:14 -05:00
Mikayla Maki
6982b4b42e Fix off by 1 error when computing available key bindings (#3964)
Fixes https://github.com/zed-industries/community/issues/2379

Release Notes:

- Fixed issue where keybindings in some context menus would not show
reliably.
2024-01-08 17:40:43 -08:00
Mikayla
0684369734 Fix off by 1 error when computing available key bindings 2024-01-08 17:30:24 -08:00
Mikayla Maki
435b5ca753 Restore the terminal cursor settings (#3963)
As it says on the tin

Release Notes:

- Restored the terminal cursor's I-beam and pointing hand settings
2024-01-08 16:07:08 -08:00
Mikayla
ec7db3f528 Restore the terminal cursor settings 2024-01-08 16:02:39 -08:00
Mikayla Maki
68e705db5b Restore the active pane magnification feature (#3961)
As it says on the tin

Release Notes:

- Restored the active pane magnification setting.
2024-01-08 15:58:57 -08:00
Conrad Irwin
ca0c06b577 Fix assets build (#3962)
Release Notes:

- N/A
2024-01-08 16:57:36 -07:00