Commit Graph
363 Commits
Author SHA1 Message Date
Antonio ScandurraandNathan Sobo 917a80ec36 🎨
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-30 17:24:51 +02:00
Antonio ScandurraandNathan Sobo 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 BrunsfeldandNathan Sobo 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 BrunsfeldandNathan Sobo 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
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 ScandurraandNathan Sobo 53dc08dfc5 Remove lock from element states
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-27 18:04:21 +02:00
Antonio ScandurraandNathan Sobo 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 7f5cd017cb Fix potential deadlock when using FontCache::em_width 2021-08-27 14:54:21 +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
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
Antonio ScandurraandNathan Sobo 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 ScandurraandNathan Sobo 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 ScandurraandNathan Sobo 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
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 ScandurraandNathan Sobo 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 ScandurraandNathan Sobo 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 ScandurraandNathan Sobo 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 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 SoboandMax Brunsfeld 33dbbf271e WIP
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 18:09:36 -07:00
Max BrunsfeldandNathan Sobo 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 SoboandMax Brunsfeld 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 8559be9f92 Default unstyled text to be red instead of transparent 2021-08-24 17:11:27 -06:00
Max BrunsfeldandNathan Sobo 8179f90589 Add initial unit test for channel list
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-24 13:12:02 -07:00
Antonio Scandurra 54b4a4bf6a Allow editor to be created in auto-height mode 2021-08-24 14:17:15 +02:00
Max Brunsfeld baded7d416 Start work on subscribing to model from ChatPanel 2021-08-23 17:21:06 -07:00
Max BrunsfeldandNathan Sobo 6df80d94ad Allow subscription/notification to be cancelled by dropping the returned Subscription
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 15:54:24 -07:00
Max BrunsfeldandNathan Sobo fa0739ee2e Remove model and view specific observe/subscribe methods
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 15:07:50 -07:00
Max Brunsfeld 5ecedd894d Add ChannelList to AppState 2021-08-23 15:03:45 -07:00
Max BrunsfeldandNathan Sobo 43bb38206f Add generic subscribe and observe methods to contexts
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 15:03:12 -07:00
Max BrunsfeldandNathan Sobo 8e191f27d9 Simplify state associated with observations
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 15:03:08 -07:00
Max BrunsfeldandNathan Sobo d02eaf9e3a Fix scrolling in List element
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 11:02:30 -07:00
Antonio ScandurraandNathan Sobo a182db863f WIP: Render dummy chat messages to test List
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 17:29:46 +02:00
Antonio ScandurraandNathan Sobo 94e9a83326 Give up on entities being Send and Sync
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 17:04:32 +02:00
Antonio ScandurraandNathan Sobo 3543aceff3 Implement scrolling and painting for List
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 16:41:48 +02:00
Antonio ScandurraandNathan Sobo bd89dc4114 Perform a full layout of List when width changes
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 16:04:23 +02:00
Antonio ScandurraandNathan Sobo 03b7c3c8c6 Implement and test splice for ListState
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 16:00:05 +02:00
Antonio ScandurraandNathan Sobo 2c3ba00d3e Remove vestiges of after_layout
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 15:23:06 +02:00
Antonio ScandurraandNathan Sobo 6dddb72e82 WIP: Create infrastructure for testing element layout
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 15:20:23 +02:00
Antonio ScandurraandNathan Sobo 6129bda068 Fix boxed cloning of AnyAction
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 14:45:13 +02:00
Antonio Scandurra ab2977c65c Pass action instead of action argument to handlers 2021-08-23 12:00:31 +02:00
Nathan Sobo 86effd64a2 Get project compiling with type-safe actions 2021-08-22 21:02:48 -06:00