Joseph Lyons
7c60f636d5
Fix typos
2023-06-02 22:02:19 -04:00
Max Brunsfeld
66b3be8687
Make toggle dock actions appear in the command palette
2023-05-24 09:58:41 -07:00
Antonio Scandurra
4aa2858b2b
Transfer focus to root view only if previously-focused view was dropped
2023-05-22 18:05:08 +02:00
Antonio Scandurra
146809eef0
Merge branch 'main' into panels
2023-05-22 14:10:17 +02:00
Antonio Scandurra
747fbfadeb
Notify old/new ancestors of the focused view when they change
2023-05-17 17:12:12 +02:00
Antonio Scandurra
981129ef8e
Show a panel/pane as zoomed only if it's the active item in workspace
2023-05-17 15:06:58 +02:00
Antonio Scandurra and Antonio Scandurra
f87ae6032e
Don't rely on action propagation for zooming in and out
...
Co-Authored-By: Antonio Scandurra <antonio@zed.dev >
2023-05-16 10:34:50 -06:00
Nathan Sobo
ba50b35de6
wip
2023-05-13 14:34:09 -06:00
Max Brunsfeld
cee7edabf9
Ensure the SettingsStore global is added in tests
2023-05-10 16:39:59 -07:00
Antonio Scandurra
9b9d53fcf8
Focus the root view if the previously-focused view isn't rendered
2023-05-10 15:40:46 +02:00
Mikayla Maki
8d561d6408
Make dock not eagerly steal focus from sub items
2023-05-09 12:00:09 -07:00
Antonio Scandurra
080a1f00a3
Delay focus_in event for window activation till after layout
2023-05-05 10:47:42 +02:00
Antonio Scandurra
b9ed327b94
Replace usages of is_parent_view_focused with is_self_focused
...
Previously, this was used because we didn't have access to the current
view and `EventContext` was an element-only abstraction. Now that the
`EventContext` wraps the current view's `ViewContext` we can simply check
for the view's focus and avoid querying ancestors.
2023-05-05 10:08:22 +02:00
Antonio Scandurra
80ad59a620
Make focusing the parent an effect to avoid querying ancestors
2023-05-05 10:04:54 +02:00
Antonio Scandurra
da19edc3e3
Merge branch 'main' into implicit-ancestry
2023-05-04 14:39:58 +02:00
Antonio Scandurra
5cc6304fa6
Verify keystrokes can be queried while views are on the stack
2023-05-04 12:09:32 +02:00
Antonio Scandurra
3d679ddb26
Avoid re-allocating KeymapContext after every view notification
2023-05-04 12:04:30 +02:00
Antonio Scandurra
18e39ef2fa
Cache view's type id and keymap context into a separate map
...
During `layout`, we now pass a mutable reference to the element's
parent view. This is a recursive process that causes the view to
be removed from `AppContext` and then re-inserted back into it once
the layout is complete.
As such, querying parent views during `layout` does not work as such
views will have been removed from `AppContext` and not yet re-inserted
into it. This caused a bug in `KeystrokeLabel`, which used the `keystrokes_for_action`
method to query its ancestors to determine their type id and keymap context.
Now, any time a view notifies, we will cache its keymap context so that
we don't need to query the parent view during `layout`.
2023-05-04 10:47:56 +02:00
Antonio Scandurra
f6f18be9c3
Remove WindowContext::is_child_focused
2023-05-04 09:53:35 +02:00
Antonio Scandurra
92183e0d72
Ensure querying keystrokes or actions is safe
...
This is achieved by moving `available_actions` into `AsyncAppContext` (where
we know no view/window is on the stack) and `keystrokes_for_action` into `LayoutContext`
where we'll fetch the previous frame's ancestors and notify the current view if those
change after we perform a layout.
2023-05-04 09:53:31 +02:00
Antonio Scandurra
040cc4d4c3
Allow notifying views when the ancestry of another view is outdated
2023-05-03 19:25:00 +02:00
Antonio Scandurra
9e8f852afb
Remove ViewContext::is_child
2023-05-03 19:09:07 +02:00
Antonio Scandurra
e9ed40da37
Remove the ability to retrieve the view's parent
2023-05-03 16:52:55 +02:00
Antonio Scandurra
7f137ed3dd
Compute view ancestry at layout time
2023-05-03 16:36:14 +02:00
Antonio Scandurra
7f345f8bf5
Separate Window::build_scene into layout and paint
2023-05-03 12:18:16 +02:00
Antonio Scandurra
70f8cf4cf6
Move methods querying window state into AsyncAppContext
2023-05-02 19:38:48 +02:00
Antonio Scandurra
794446bf8b
Move debug_elements to AsyncAppContext
...
Previously, `debug_elements` was available on `WindowContext`. If that
method was called while having a borrow out to a view, it would panic because
the view would already have been borrowed.
By moving it to an `AsyncAppContext` we ensure the method can't be called while
a view is being used.
2023-05-02 11:09:40 +02:00
Antonio Scandurra
6c931ab9da
Inline test-only AppContext methods
2023-05-01 16:49:17 +02:00
Antonio Scandurra
eb2cce98a7
Move dispatch_action_any_action_at to AsyncAppContext
2023-05-01 16:40:57 +02:00
Antonio Scandurra
c4472b0786
Remove ViewContext::dispatch_action
2023-05-01 16:27:36 +02:00
Antonio Scandurra
d815fc88ae
Remove ViewContext::dispatch_any_action
2023-05-01 14:24:00 +02:00
Antonio Scandurra
029538fe21
Make dispatch_global_action private
2023-05-01 11:45:35 +02:00
Antonio Scandurra and Nathan Sobo
6317e885c7
Don't allow strong view handles to be read/updated with an AsyncAppContext
...
This avoids an invitation to hold strong view handles across async await
points, which is a common source of leaks.
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2023-04-26 13:36:13 +02:00
Antonio Scandurra
689e878bd8
Use a WeakViewHandle in Client for view message handlers
2023-04-26 12:21:02 +02:00
Antonio Scandurra
57beec6071
Allow direct read/update of WeakViewHandle only in AsyncAppContext
2023-04-26 12:20:57 +02:00
Antonio Scandurra
94c2eaad23
Replace ViewContext::spawn with ViewContext::spawn_weak
2023-04-26 10:23:27 +02:00
Antonio Scandurra and Nathan Sobo
c165fb9be5
Remove ReadView and UpdateView traits
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2023-04-24 17:36:14 +02:00
Antonio Scandurra and Nathan Sobo
a6115d9330
Remove UpdateModel trait
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2023-04-24 16:52:09 +02:00
Antonio Scandurra and Nathan Sobo
a9417f3d2e
Remove ReadModelWith trait
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2023-04-24 16:44:54 +02:00
Antonio Scandurra and Nathan Sobo
5f500d34b2
Remove UpgradeModelHandle trait
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2023-04-24 16:40:30 +02:00
Antonio Scandurra and Nathan Sobo
b8fab6fde9
Remove UpgradeViewHandle trait
...
Co-authored-by: Nathan Sobo <nathan@zed.dev >
2023-04-24 16:33:27 +02:00
Nathan Sobo
83bf3d071d
WIP
2023-04-21 15:36:52 -06:00
Nathan Sobo
55db28e074
Eliminate ReadModel trait
2023-04-21 15:05:19 -06:00
Nathan Sobo
5dac95c47c
Eliminate ReadView trait
2023-04-21 15:03:57 -06:00
Nathan Sobo
993dbf86cb
Merge remote-tracking branch 'origin/main' into into-element
2023-04-21 14:27:25 -06:00
Nathan Sobo and Max Brunsfeld
fe492eacbf
Refine naming of element-related types and traits
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2023-04-21 13:06:37 -06:00
03619dfa55
Rename Drawable::boxed to into_element and make containers generic
...
Multi-element are now generic over any drawable child, which can be converted
into an element.
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2023-04-21 12:43:19 -06:00
Antonio Scandurra and Nathan Sobo
4ac894ffbe
Remove unnecessary lifetime parameter from WindowContext
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2023-04-21 18:06:53 +02:00
Antonio Scandurra and Nathan Sobo
a860a6cd62
Make App::notify_view private
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2023-04-21 16:50:57 +02:00
Antonio Scandurra and Nathan Sobo
8c7f821d14
Introduce a new WindowContext::remove_window API
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2023-04-21 16:39:53 +02:00