Antonio Scandurra
c872f581d1
Query rect_for_text_range on focused view instead of root element
...
This was causing IME input to be drawn in the wrong place when there
were splits or panels in the window.
2023-06-05 12:00:40 +02:00
Max Brunsfeld
2db57b5139
Adjust diagnostic transformation test to not wait for two buffer notifications
2023-05-26 15:47:37 -07:00
Max Brunsfeld
66b3be8687
Make toggle dock actions appear in the command palette
2023-05-24 09:58:41 -07:00
Antonio Scandurra
146809eef0
Merge branch 'main' into panels
2023-05-22 14:10:17 +02:00
Kirill Bulatov
583b15badc
When the file is deleted via project panel, close it in editors
2023-05-19 18:52:30 +03: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
da19edc3e3
Merge branch 'main' into implicit-ancestry
2023-05-04 14:39:58 +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
7b7a495be3
Remove stray dbg! statement
2023-05-04 09:56:49 +02:00
Antonio Scandurra
f6f18be9c3
Remove WindowContext::is_child_focused
2023-05-04 09:53:35 +02:00
Antonio Scandurra
67a3891f15
Make dispatch_event related methods public to the crate only
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
7250754f8e
Make dispatch_keystroke public to the crate only
2023-05-03 19:13:17 +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
1c5376a560
Remove impl_internal_actions macro
2023-04-28 17:29:57 +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
7ca412ade3
Merge remote-tracking branch 'origin/main' into fewer-context-traits
2023-04-26 09:54:58 +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
e6604d1641
Fix missing actions in the command palette
...
Previously, the workspace view was on the stack when we were computing the
available actions, which excluded it. This is a stopgap. We should find a
better solution ASAP.
2023-04-21 15:59:29 -06: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
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
8c7f821d14
Introduce a new WindowContext::remove_window API
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2023-04-21 16:39:53 +02:00
Antonio Scandurra and Nathan Sobo
31e906d068
Avoid double borrow of views on up and up_out in DragAndDrop
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2023-04-21 16:19:51 +02:00
Antonio Scandurra and Nathan Sobo
d9bb37c649
Add WindowContext::update_default_global
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2023-04-20 17:13:13 +02:00
Antonio Scandurra
493a418c91
WIP
2023-04-17 18:52:48 +02:00
Antonio Scandurra
38ab6b123f
Make production code compile again
2023-04-17 12:33:33 +02:00
Antonio Scandurra
f09e21aa93
WIP: force using (at least) a window context to update views
2023-04-14 17:08:13 +02:00
Antonio Scandurra
33bc47dbe2
Merge branch 'main' into window_context_2
2023-04-14 12:07:09 +02:00
Antonio Scandurra
183b9ef809
Make full-screen and window bounds callbacks take a WindowContext
2023-04-14 11:56:31 +02:00
Antonio Scandurra
5666e8301e
Log an error when a scene fails to build
2023-04-14 10:32:56 +02:00
Antonio Scandurra
9ef79735dc
Move more window-specific methods from AppContext to WindowContext
2023-04-14 10:29:35 +02:00
Antonio Scandurra and Nathan Sobo
84d2605ccf
Avoid passing cx when emitting from CallbackCollection
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2023-04-13 16:53:44 +02:00
Antonio Scandurra
4900e04ff3
Fix window refreshing
2023-04-13 12:19:11 +02:00
Antonio Scandurra
702c4ce403
Uncomment List tests and fix related problems in WindowContext
2023-04-13 12:01:18 +02:00
Nathan Sobo
b89c4e06be
WIP: Compiling, many warnings, haven't tested
2023-04-12 12:54:24 -06:00