Commit graph

1246 commits

Author SHA1 Message Date
Max Brunsfeld
bc63fca8d7 Fetch older messages when scrolling up in the chat message list
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-27 14:58:28 -07:00
Max Brunsfeld
5262dcd3cb Don't change cursor on mouse move while mouse button is held down 2021-08-27 10:34:11 -07:00
Antonio Scandurra
5e6e0c68cd Allow styling the cursor in MouseEventHandler
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-27 19:01:49 +02:00
Antonio Scandurra
53dc08dfc5 Remove lock from element states
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-27 18:04:21 +02:00
Antonio Scandurra
d5b7e2d4e3 Pass a MutableAppContext in render
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-27 17:25:13 +02:00
Antonio Scandurra
a9963f1b32 Synthesize a mouse moved event also when the mouse is dragged 2021-08-27 16:31:12 +02:00
Antonio Scandurra
2cd21d1da8 Ensure sidebar width never goes below 0 2021-08-27 16:30:43 +02:00
Antonio Scandurra
30ce7f6122 Allow styling sidebar's resize handle 2021-08-27 14:57:47 +02:00
Antonio Scandurra
7f5cd017cb Fix potential deadlock when using FontCache::em_width 2021-08-27 14:54:21 +02:00
Antonio Scandurra
bed9d9c9d8 Add the ability to resize sidebar items 2021-08-27 14:30:35 +02:00
Antonio Scandurra
8a10234b14 Introduce MouseEventHandler::on_drag 2021-08-27 14:30:08 +02:00
Antonio Scandurra
386631debf Focus toggled elements when interacting with the sidebars
Also, restore focus on the workspace when there is no active item
on the sidebar that was just toggled.
2021-08-27 10:01:44 +02:00
Max Brunsfeld
1489c865e7 Remove ui font fields from settings 2021-08-26 17:12:56 -07:00
Max Brunsfeld
38d0258049 Add channel name header to chat panel 2021-08-26 17:12:56 -07:00
Max Brunsfeld
f810464983 Send chat messages based on input buffer's unwrapped text 2021-08-26 16:22:37 -07:00
Max Brunsfeld
8861dea69d Add zero padding when displaying timestamps 2021-08-26 16:21:47 -07:00
Max Brunsfeld
8c85bc20c7 Indicate the key-path to the error when failing to load a theme 2021-08-26 15:06:05 -07:00
Max Brunsfeld
3bb5610ad1 Overhaul handling of font families
* Specify font families in the theme.
* Load fonts eagerly when loading themes, instead of loading
  them lazily when rendering.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-26 15:06:00 -07:00
Nathan Sobo
ee9ee294ad Improve sender styling
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-08-26 09:17:43 -06:00
Antonio Scandurra
381f2499b2 Preserve scroll position of List when refreshing windows
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-26 16:46:28 +02:00
Antonio Scandurra
4388c45029 Re-render all list elements when refreshing windows
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-26 16:36:56 +02:00
Antonio Scandurra
5fe5685641 Replace notify_all with an explicit refresh_windows effect
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-26 15:00:00 +02:00
Antonio Scandurra
c865f8ad1a Fix retrieving recent channel messages 2021-08-26 14:14:22 +02:00
Antonio Scandurra
d77211c6b1 Extract a TestDb to setup and tear down a database instance 2021-08-26 12:51:48 +02:00
Max Brunsfeld
b923f65a63 WIP 2021-08-25 15:22:14 -07:00
Nathan Sobo
8f86fa1ccd Associate messages with their sender, fetching senders if necessary
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-25 14:20:03 -06:00
Nathan Sobo
77c7fa53da Introduce Orientation concept to List
When the Orientation is Bottom, we paint elements from the bottom of the list when underflowing and express scroll position relative to the bottom. In either orientation, when inserting elements outside the visible area, we adjust the scroll position as needed to keep the visible elements stable.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-08-25 12:45:17 -06:00
Antonio Scandurra
897826f710 Run subscription/observation callbacks in the order they were added
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-25 17:35:27 +02:00
Antonio Scandurra
1aa1e6c6ab Move pooling of line wrappers into FontCache
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-25 17:28:25 +02:00
Antonio Scandurra
0c9e72cce7 Support hard wraps in Text element
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-25 16:53:26 +02:00
Antonio Scandurra
3d5cfb78ea Use Text in chat panel
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-25 16:42:35 +02:00
Antonio Scandurra
72f282eb3a Calculate current line width correctly when wrapping shaped lines 2021-08-25 15:21:04 +02:00
Antonio Scandurra
399ecaabc6 Wrap lines in Text element 2021-08-25 14:59:52 +02:00
Antonio Scandurra
463284f0af Move LineWrapper into gpui 2021-08-25 10:43:54 +02:00
Max Brunsfeld
f404f5f32f wip2 2021-08-24 18:09:36 -07:00
Nathan Sobo
33dbbf271e WIP
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 18:09:36 -07:00
Max Brunsfeld
91c2b5825e Add LineWrapper::wrap_shaped_line
This allows us to perform wrapping based on
glyph positions in an already-shaped line. We
plan to use this in the new Text element,
because there we'll already need to do text
shaping as part of layout. This text isn't editable
so it won't need to be rewrapped with the same
frequency as the text editor's content.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-24 18:09:36 -07:00
Nathan Sobo
0187ac8fde Share a single pool of LineWrappers across all threads
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 18:16:13 -06:00
Nathan Sobo
3ac489a8b6 Fix panic when scrolling non-overflowing lists
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 17:51:37 -06:00
Nathan Sobo
a79b32cfc2 Apply theme to chat messages
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 17:46:41 -06:00
Nathan Sobo
87a103bc52 💄
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 17:46:41 -06:00
Nathan Sobo
621203eb60 Group more elements under workspace theme struct
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 17:38:26 -06:00
Nathan Sobo
e69d1f9a9b Break up theme module
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 17:33:56 -06:00
Nathan Sobo
f8fb45912d Avoid redundant notification after creating the ChannelList when not authenticated
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 17:18:40 -06:00
Nathan Sobo
ff966c8d04 Fix off-by-1 in Channel::messages_in_range
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 17:17:55 -06:00
Nathan Sobo
3ad894b7e8 Hit the local server when debugging 2021-08-24 17:11:40 -06:00
Nathan Sobo
8559be9f92 Default unstyled text to be red instead of transparent 2021-08-24 17:11:27 -06:00
Max Brunsfeld
8179f90589 Add initial unit test for channel list
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-24 13:12:02 -07:00
Max Brunsfeld
d9d52b8aa5 When loggin in, send user id instead of creating a new watch channel 2021-08-24 13:11:37 -07:00
Antonio Scandurra
bb570d3702 Init chat_panel 2021-08-24 17:54:25 +02:00