linux: Fix IME panel position while enumerating input methods (#12495)

Release Notes:

- N/A

This updates the IME position every time the selection changes, this is
probably only useful when you enumerate languages with your IME.

TODO:
- ~There is a rare chance that the ime panel is not updated because the
window input handler is None.~
- ~Update IME panel in vim mode.~
- ~Update IME panel when leaving Buffer search input.~

---------

Co-authored-by: Mikayla Maki <mikayla@zed.dev>
This commit is contained in:
Fernando Tagawa 2024-08-28 23:58:40 -03:00 committed by GitHub
parent e6d5f4406f
commit 8e8927db4b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 244 additions and 55 deletions

View file

@ -2960,6 +2960,10 @@ impl Workspace {
self.remove_pane(pane, focus_on_pane.clone(), cx)
}
pane::Event::ActivateItem { local } => {
cx.on_next_frame(|_, cx| {
cx.invalidate_character_coordinates();
});
pane.model.update(cx, |pane, _| {
pane.track_alternate_file_items();
});
@ -2993,6 +2997,9 @@ impl Workspace {
}
}
pane::Event::Focus => {
cx.on_next_frame(|_, cx| {
cx.invalidate_character_coordinates();
});
self.handle_pane_focused(pane.clone(), cx);
}
pane::Event::ZoomIn => {