Commit graph

1283 commits

Author SHA1 Message Date
Antonio Scandurra
a27a17b8e2 Make scrolling up in chat panel smoother
This increases the threshold at which we start loading new messages
as well as the amount of messages we get back from the server every
time we fetch.

Also, we restructured the seed binary to use the methods in `Db` to
generate seed data and added random chat messages.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-02 16:05:34 +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
836b6dfbaf Don't return channels that were released in ChannelList::get_channel 2021-09-02 10:15:02 +02:00
Antonio Scandurra
4876e40a98 Reset rendered range when calling ListState::reset 2021-09-02 10:14:32 +02:00
Max Brunsfeld
007d6f5eca Add a with_style method to Editor 2021-09-01 17:15:21 -07:00
Max Brunsfeld
6821c47e3d Improve styling of chat messages and channel select
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-01 16:14:51 -07:00
Max Brunsfeld
985788b855 Allow uniform margins and paddings to be specified as single numbers
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-01 16:14:25 -07:00
Max Brunsfeld
848dd5f4c5 Add refreshing field to LayoutContext
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-01 16:02:12 -07:00
Max Brunsfeld
894531d0e0 Fix list's scrollwheel direction
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-01 15:36:22 -07:00
Max Brunsfeld
82d1fb82d2 Clean up List::layout
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-01 15:27:23 -07:00
Max Brunsfeld
bfdb0f35ba Return correct scroll top from layout when list is not full
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-01 14:27:38 -07:00
Max Brunsfeld
bc38baf241 Get randomized test passing
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-09-01 13:25:12 -07:00
Antonio Scandurra
6e91289235 Adjust the stored scroll top during layout if it exceeds scroll max
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-01 17:29:26 +02:00
Antonio Scandurra
20e18ac3ad WIP
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-09-01 16:19:01 +02:00
Antonio Scandurra
c8d67f428d WIP 2021-09-01 13:50:39 +02:00
Antonio Scandurra
c7a8972a57 Fix off-by-one error in StateInner::visible_range
I even wonder if we should keep this function around, as it feels
like it can only be called at certain times (e.g. layout) and not
after a splice or a scroll where we may not have rendered the
elements we actually need.
2021-09-01 12:20:48 +02:00
Antonio Scandurra
0a22dee764 Save last layout width in List to avoid unnecessary re-renders 2021-09-01 12:20:11 +02:00
Max Brunsfeld
477740360d Start work on partial rendering for List element
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-08-31 21:57:56 -07:00
Antonio Scandurra
2db49ce27f Maintain logical scroll top when splicing List elements
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-31 16:35:57 +02:00
Antonio Scandurra
d410ff83a7 Express scroll position with an element index and an offset
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-31 15:57:03 +02:00
Antonio Scandurra
8edb2142b1 Pass a closure to provide styling to Select
This lets us obtain a new style when refreshing the theme.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-31 14:42:50 +02:00
Max Brunsfeld
73a8fda9c7 Get the channel select looking good
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-30 17:59:13 -07:00
Antonio Scandurra
ff01b52819 WIP: start on Select 2021-08-30 20:18:17 +02:00
Antonio Scandurra
ef89ceae4d Take &mut self in View::render
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-30 17:51:26 +02:00
Antonio Scandurra
917a80ec36 🎨
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-30 17:24:51 +02:00
Antonio Scandurra
87cd668a33 Replace foreground layers with stacking contexts
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-30 17:19:03 +02:00
Antonio Scandurra
171627b63a Add a new zero-sized Overlay element and paint it in the foreground 2021-08-30 15:42:03 +02:00
Antonio Scandurra
2b39107b49 Introduce Scene::push_foreground_layer 2021-08-30 15:41:16 +02:00
Max Brunsfeld
18d175a240 Don't allow empty chat messages 2021-08-27 17:21:53 -07:00
Max Brunsfeld
a98d293f54 Trim whitespace from chat messages and limit their length
Add a way for the server to respond to any request with an error
2021-08-27 17:21:35 -07:00
Max Brunsfeld
b3d5f01ba8 Drop the word 'recent' from get_channel_messages db method name 2021-08-27 15:50:45 -07:00
Max Brunsfeld
fbc88d5f88 Get the light theme loading again 2021-08-27 15:11:39 -07:00
Max Brunsfeld
936af9bc5e Avoid double borrow panic when resizing windows
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-27 15:03:37 -07:00
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