Commit graph

431 commits

Author SHA1 Message Date
Antonio Scandurra
4a96a5c9ff Use a negative delta to scroll down in layout unit test for List 2021-09-16 11:46:53 +02:00
Max Brunsfeld
df4b5890fd Run fewer iterations of the gpui list test by default 2021-09-15 18:06:21 -07:00
Nathan Sobo
7e4d5b7d04 Clear cached credentials when establishing a websocket connection with an invalid token 2021-09-14 20:36:03 -06:00
Nathan Sobo
99a2dc4880 Render an offline icon in titlebar when connection is lost
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-09-14 17:47:43 -06:00
Nathan Sobo
0f415a594f Style avatar image with border and rounded corners
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-09-14 16:59:38 -06:00
Nathan Sobo
426d52d8c1 Mix quad border color with background color based on its alpha channel
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-09-14 16:59:09 -06:00
Nathan Sobo
b63b717eac Preserve aspect ratio when scaling images
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-09-14 16:39:35 -06:00
Max Brunsfeld
84d4bb6186 Introduce HttpClient trait, use it to fetch avatars in UserStore
* Add a FakeHttpClient for tests
2021-09-14 13:42:44 -07:00
Nathan Sobo
f0019e3725 WIP 2021-09-14 12:29:56 -06:00
Antonio Scandurra
bd4d73bb27 Extract image rasterization into ImageCache
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-14 18:11:59 +02:00
Antonio Scandurra
d15eda53f6 Use AtlasAllocator in SpriteCache
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-14 17:57:01 +02:00
Antonio Scandurra
95da665095 Allow passing a corner radius and borders to rendered images
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-14 17:49:11 +02:00
Antonio Scandurra
96ade8668f Start on image rendering 2021-09-14 16:48:44 +02:00
Antonio Scandurra
8de18b5a84 Re-join channel when reconnecting
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-09 15:34:46 +02:00
Max Brunsfeld
c3e29e0a2d Finish implementing DeterministicExecutor::advance_clock
* Start by running all non-timer futures to completion, to ensure that
  timers have a chance to be registered.
* Release executor's state lock before waking any timers
2021-09-08 11:27:30 -07:00
Antonio Scandurra
900010160f WIP
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-09-08 18:58:59 +02:00
Max Brunsfeld
08bac7b9a3 Introduce test-only Buffer::set_sync_parse_timeout
When testing buffer's asynchronous reparsing, set the sync
parse timeout to zero, so that we can exercise the async code path.
2021-09-07 16:23:49 -07:00
Max Brunsfeld
36fb559c03 Rework tabs
* Tabs are no longer flexible in width
* Move status icons to the left side of the tab
* The close button is always visbile for the active tab

Co-Authored-By: Nate Butler <nate@zed.dev>
2021-09-07 14:28:14 -07:00
Nathan Sobo
13143e64a2 Style resize handles
We want the draggable area to be larger than the visual appearance, so we added a padding facility to MouseEventHandler that enlarges the "hit area" by the specified padding.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-09-07 13:22:21 -06:00
Antonio Scandurra
7db78b3961 Merge branch 'chat' 2021-09-07 19:21:03 +02:00
Antonio Scandurra
d08ec438ed Make titlebar taller and position traffic lights accordingly
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-07 18:37:45 +02:00
Antonio Scandurra
a8011fcde4 Render underlines in front of paths and glyphs 2021-09-07 11:19:44 +02:00
Antonio Scandurra
5b71901912 Flush pending underline when we are at the end of the line 2021-09-07 11:04:44 +02:00
Antonio Scandurra
cf68ad3a82 Trim pending underline when text runs don't cover the whole line 2021-09-07 11:03:43 +02:00
Antonio Scandurra
8cf16c6ecc Use Label's base style underline when no highlights are provided 2021-09-07 11:03:08 +02:00
Nathan Sobo
6323e8cc59 WIP: Try rendering underlines after all other quads
I thought this would allow underlines to show up in tabs, but it doesn't seem to be working.
2021-09-06 16:57:58 -06:00
Max Brunsfeld
9346aa300d Start work on underlined text
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-06 15:36:09 -07:00
Antonio Scandurra
94959d18c4 Load embedded fonts when initializing settings 2021-09-06 14:08:42 +02:00
Antonio Scandurra
cb62d53b49 Return errors instead of panicking when interacting with the keychain
Closes #134
2021-09-06 10:40:19 +02:00
Max Brunsfeld
cff6ffb716 Avoid invalid lifecycle state for flex element when total child flex is zero 2021-09-04 16:27:38 -07:00
Antonio Scandurra
00f6bdcb24 Bundle and use Inconsolata v2.012
There's a newer version of the font available but ligatures seem
broken googlefonts/Inconsolata#58 and googlefonts/Inconsolata#52.

As part of this commit I also upgraded rust-embed to use the new
exclusion feature, which allows us to skip embedding OS files like
`.DS_Store`.
2021-09-04 17:02:20 +02:00
Antonio Scandurra
f0775aeebc Rename Hooks to Hook
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-03 17:56:01 +02:00
Antonio Scandurra
2f0f6e210d Honor max constraint in Flex even if children overflow
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-03 17:47:45 +02:00
Antonio Scandurra
0ae70b62cb Use on_after_layout to cap the rendered sidebar item's width 2021-09-03 17:19:57 +02:00
Antonio Scandurra
215db4243c Ensure key window is a GPUIWindow before returning its id 2021-09-03 14:20:59 +02:00
Antonio Scandurra
4c7eaaebb1 Use Flexible in file finder and theme switcher instead of Expanded 2021-09-03 13:20:41 +02:00
Antonio Scandurra
776f7dd5a9 Add a new Hooks element to invoke a callback before layout
This is useful to cap the width of sidebars when dragging the
resize handles beyond the maximum bounds of the sidebar.
2021-09-03 12:18:31 +02:00
Antonio Scandurra
a0dd41cdf6 Add a Flexible element that works like in Flutter 2021-09-03 11:40:18 +02:00
Max Brunsfeld
522bef2e3a Add placeholder text as a feature of Editor, use it in chat panel 2021-09-02 17:36:56 -07:00
Max Brunsfeld
1c43121ae0 In theme, add an InputEditorSyle for styling small editors
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-09-02 11:20:30 -07:00
Antonio Scandurra
f59e02cf25 Use macOS API to retrieve the local timezone
The `time` crate currently doesn't have a reliable way to get that.
In the future, `NSSystemTimeZoneDidChangeNotification` could be
used to keep the cached timezone up-to-date.

Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-09-02 19:15:05 +02:00
Antonio Scandurra
3d4ff43f9e Reset visible bounds when painting an Overlay element
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-09-02 18:46:48 +02:00
Antonio Scandurra
2d5abee655 Fix calculation of visible glyph bounds
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-02 16:24:52 +02:00
Antonio Scandurra
26fe285408 Always inherit parent layer's clip bounds
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-02 16:24:08 +02:00
Antonio Scandurra
6a071e865f Make Line::paint interface consistent with Line::paint_wrapped
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-02 14:33:52 +02:00
Antonio Scandurra
bdc35f03f2 Paint only glyphs that intersect the visible bounds in Text
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-02 14:14:05 +02:00
Antonio Scandurra
0490c609fb Introduce a visible_bounds parameter to Element::paint
We're not using this yet but this will be useful to avoid rendering
unnecessary portions of text.
2021-09-02 11:42:23 +02:00
Antonio Scandurra
38dc023942 Toggle sidebar items on mouse down instead of on click 2021-09-02 10:20:58 +02:00
Antonio Scandurra
1d697df1bc Implement channel switching 2021-09-02 10:16:20 +02:00
Antonio Scandurra
4876e40a98 Reset rendered range when calling ListState::reset 2021-09-02 10:14:32 +02:00