Ready for Review - [Mouse Jump] - port upstream WinUI3 code to Mouse Jump (microsoft#48290) - #48393
Conversation
There was a problem hiding this comment.
check-spelling found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Thank you for contributing to PowerToys. We've detected that this PR might include a new or modified telemetry event. Please ensure the following before merging:
|
|
The current code basically works, but I've not been through the testing checklist from top to bottom yet. Happy for reviews to wait until I've done that, or feel free to forge ahead... Also, re telemetry in the comment above, I think it's just detecting events in the new WinUI project folder - these are the same as the ones in the WinForms version so no new telemetry added. |
|
Niels Laute (@niels9001) - 3rd time lucky - I've moved the MouseJump.Kicker winforms dev util into \tools and addressed all the latest CoPilot review points. Hopefully that'll be the last iteration :-) 🤞 . |
Only conflict was .github/actions/spell-check/expect.txt (kept both 'cascadia' and 'caseinsensitive', sorted). PowerToys.slnx auto-merged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8e04a72e-3b0f-4ac4-8156-d04ea9b8bb85
|
Just a reminder in case it gets lost in the comments - there's no signing / installation changes made yet in this PR as I'm not really sure how to do that. There's a couple of new dlls, the main exe is renamed and it's all now in the WinUIApps subfolder, if someone is able to help with integrating that into the installer... |
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Summary of the Pull Request
Changes for #48290 to convert Mouse Jump to a WinUI app and remove all remaining dependencies on WinForms, based on work already done in the original "FancyMouse" project (https://github.com/mikeclayton/FancyMouse).
Notes for reviewers
the new WinUI build of the app is output into the "/WinUI3Apps" subfolder
there's 2 new assemblies that need to be added to the installation as well - MouseJump.HotKeys.dll and MouseJump.Models.dll. I'm not sure how to add those to the installer for signing / shipping...
Summary of changes
1. New layout code
Incorporates latest FancyMouse core layout and rendering logic into Mouse Jump:
2. WinUI rewrite
Port latest stable FancyMouse WinUI implementation into Mouse Jump.
Existing WinForms UI left in-situ side-by-side for now - easy to delete if not needed.
3. MouseJump.Kicker
A small dev utility to start Mouse Jump without needing to build the runner project:
4. Cswin32 for interop
All win32 interop is now accessed via CsWin32 bindings.
The original win32 bindings were heavily influenced by CsWin32 generated code (e.g.
BOOL,HWND, etc structs), so there's not actually much change other than deleting a lot of boilerplate code.5. New assemblies
Some code has been reorganised into new assemblies to make it easier to keep Mouse Jump in sync with upstream FancyMouse
PR Checklist
Detailed Description of the Pull Request / Additional comments
Validation Steps Performed
Hotkey and size settings are automatically reloaded when config file is modified manually (e.g. in notepad) while runner and MouseJumpUI.exe are running