diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-09-09 22:04:47 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-09 22:04:47 +0300 |
| commit | 1682cab3263b27b296f477552a4e79ab54923091 (patch) | |
| tree | 983b0b5492a66bb83cc068d1c0b64c674ffb9e77 /src/server/headless/client_views.rs | |
| parent | 1f773dd6f44ab5a66371d4249c3d6f33a02d1069 (diff) | |
fix: restore plugin focus events for client navigation (#3850)
refs #3824
Diffstat (limited to 'src/server/headless/client_views.rs')
| -rw-r--r-- | src/server/headless/client_views.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/headless/client_views.rs b/src/server/headless/client_views.rs index 2257a05e..333c94b4 100644 --- a/src/server/headless/client_views.rs +++ b/src/server/headless/client_views.rs @@ -895,10 +895,10 @@ impl HeadlessServer { if reconcile || self.app.state.popup_pane.is_some() != popup_before { self.reconcile_client_shell_locations(); } + let focus_after = self.shell_focus_target(client_id); if let Some(all_focus_before) = all_focus_before { self.finish_shell_location_reconciliation(all_focus_before, &focused_tabs_before); } else { - let focus_after = self.shell_focus_target(client_id); let focused_tabs_after = self.focused_shell_tabs(); self.app.accept_current_focus_without_events(); self.send_shell_navigation_focus_events( @@ -908,6 +908,12 @@ impl HeadlessServer { &focused_tabs_after, ); } + if focus_before != focus_after { + if let Some(target) = focus_after { + self.app + .emit_focus_api_events(target.workspace_index, target.pane_id); + } + } let geometry_changed = method_claims_geometry && if reconcile { self.reapply_controlled_shell_tab_geometry(false) |
