mirror of
https://github.com/wez/wezterm.git
synced 2024-12-23 05:12:40 +03:00
b908e2dd8c
The heart of the issue here was due to the window-reuse logic that tries to reuse a GUI window that is no longer associated with a mux window. Each GUI window subscribes to the mux for mux events, but it filters according to is understanding of the mux_window_id that it is associated with. The GUI frontend maintains an mapping of GUI and mux window so that it knows when to reuse a GUI window and when to close it. When connecting to a remote mux, wezterm spawns a temporary connection progress window. Once connected, workspace reconiliation is triggered and decides that this window can be used for something else. As part of workspace reconciliation, this mapping can be adjusted and the frontend will notify a GUI window that its mux window has changed. However, that updated mux window was not visible to the mux notification subscription so the effect was that a variety of notifications were effectively ignored, including updates from a remote mux when the output was changed. To make matters worse, the workspace reconciliation could "double-tap" window creation and create excess windows only to later realize they weren't needed and close them out again. This commit addresses both of these concerns. refs: #1841 refs: #1814 |
||
---|---|---|
.. | ||
src | ||
Cargo.toml |