-
Notifications
You must be signed in to change notification settings - Fork 8.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Remove Monarch/Peasant & Make UI single-threaded (#18215)
As before, a minor refactor: * I started off by removing the Monarch/Peasant with the goal of moving it into and deduplicating its functionality with `WindowEmperor`. * Since I needed a replacement for the Monarch (= ensures that there's a single instance), I wrote single-instance code with a NT mutex and by yeeting data across processes with `WM_COPYDATA`. * This resulted in severe threading issues, because it now started up way faster. The more I tried to solve them the deeper I had to dig, because you can't just put a mutex around `CascadiaSettings`. I then tried to seeif WinUI can run multiple windows on a single thread and, as it turns out, it can. So, I removed the multi- from the window threading. * At this point I had dig about 1 mile deep and brought no ladder. So, to finish it up, I had to clean up the entire eventing system around `WindowEmperor`, cleaned up all the coroutines, and cleaned up all the callbacks. Closes #16183 Closes #16221 Closes #16487 Closes #16532 Closes #16733 Closes #16755 Closes #17015 Closes #17360 Closes #17420 Closes #17457 Closes #17799 Closes #17976 Closes #18057 Closes #18084 Closes #18169 Closes #18176 Closes #18191 ## Validation Steps Performed * It does not crash ✅ * New/close tab ✅ * New/close window ✅ * Move tabs between windows ✅ * Split tab into new window ✅ * Persist windows on exit / restore startup ✅
- Loading branch information
Showing
164 changed files
with
1,769 additions
and
12,249 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -99,11 +99,9 @@ IImage | |
IInheritable | ||
IMap | ||
imm | ||
IMonarch | ||
IObject | ||
iosfwd | ||
IPackage | ||
IPeasant | ||
isa | ||
ISetup | ||
isspace | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.