Conversation
* Implement EADesktop support through GameLib Using custom repo: https://github.com/Valkirie/GameLib.NET/tree/EAapp * Fix EADesktop logo missing from LibraryPage
* Reduce CPU usage, phase 1 * misc tweaks
* Optimizing IActions related functions * Pass delta to IActions to improve timed actions accuracy * seal a few classes * Use [MethodImpl(MethodImplOptions.AggressiveInlining)] on States * Small State tweaks * further improve States optimization * build 0.27.0.8 * Reduce MSI Claw 1 rumble logic CPU usage
- Quicktools will remember the last focused item from each page - Quicktools navigation won't focus AppBarButton first - Quicktools L1/R1 will automatically enter the page - MainWindow page flow is more natural when pressing A/B
Signed-off-by: Pedro Parra Ortega <pedro.parraortega@enreach.com>
* fix: correct shared toggle state and support delayed actions * Update HandheldCompanion/Actions/MouseActions.cs ignore suggested actions Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* tentative * improve code * misc * Misc UI tweaks
* feat: correct shift logic and add support for shift combiantions * fix: add backward compatibility
…, hide when FSE is enabled or disabled
|
Caution Review failedThe pull request is closed. 📝 WalkthroughWalkthroughThis release introduces PowerShell command execution, Windows platform-level sleep optimizations with full-screen detection, absolute mouse positioning (MoveTo), Windows modifier key support, and physical keyboard modifier tracking. It includes AMD curve and Intel MSR undervolting refactoring, device class reorganization, platform naming updates, and expanded UI controls for processor tweaking. Settings and resources are updated to support new features. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant MainWindow as MainWindow
participant FSE as FullScreenExperienceMonitor
participant NativeAPI as Windows API<br/>(Gaming Experience)
User->>MainWindow: Application starts
MainWindow->>FSE: new FullScreenExperienceMonitor()
FSE->>FSE: Start()
FSE->>NativeAPI: Load api-ms-win-gaming-experience-l1-1-0
NativeAPI-->>FSE: API loaded
FSE->>NativeAPI: RegisterGamingFullScreenExperienceChangeNotification()
NativeAPI-->>FSE: Register callback handle
User->>NativeAPI: Launch/Enter full-screen game
NativeAPI->>FSE: OnFseChangedNative callback
FSE->>FSE: Query IsGamingFullScreenExperienceActive()
FSE->>MainWindow: FseStateChanged(isActive=true)
MainWindow->>MainWindow: Disable resize, Force Maximized
MainWindow->>User: Window is now maximized
User->>NativeAPI: Exit full-screen game
NativeAPI->>FSE: OnFseChangedNative callback
FSE->>MainWindow: FseStateChanged(isActive=false)
MainWindow->>MainWindow: Restore resize buttons, Prior state
MainWindow->>User: Window restored to prior state
sequenceDiagram
participant User
participant Hotkey as HotkeyViewModel
participant Command as PowerShellCommands
participant Executor as Process Executor
User->>Hotkey: Select PowerShell command type
Hotkey->>Hotkey: CommandTypeIndex = 4 (PowerShell)
User->>Hotkey: Enter script content
Hotkey->>Hotkey: ScriptContent = script text
User->>Hotkey: Trigger hotkey
Hotkey->>Command: Execute(IsKeyDown=true)
Command->>Command: BuildPowerShellArgs(encodedCommand)
Command->>Command: EncodeForPowerShell(ScriptContent)<br/>UTF-16LE encode
Command->>Executor: Start pwsh.exe or powershell.exe<br/>with -EncodedCommand payload
Executor-->>User: Script executes silently
sequenceDiagram
participant User
participant InputManager as InputsManager
participant KeyboardBuffer as KeyboardBuffer
participant KeyEvent as Physical Keyboard
User->>KeyEvent: Press Ctrl key (physical)
KeyEvent->>InputManager: KeyDown event (non-injected)
InputManager->>InputManager: IsModifierKey(Keys.ControlKey) = true
InputManager->>InputManager: PhysicalModifiersDown.Add(Ctrl)
User->>KeyEvent: Press A key (physical)
KeyEvent->>InputManager: KeyDown event
InputManager->>InputManager: Initialize pressed from Modifiers
InputManager->>KeyboardBuffer: Buffer Ctrl+A sequence
User->>KeyEvent: Release A key
KeyEvent->>InputManager: KeyUp event
InputManager->>KeyboardBuffer: Release A from buffer
User->>KeyEvent: Release Ctrl key
KeyEvent->>InputManager: KeyUp event (non-injected)
InputManager->>InputManager: PhysicalModifiersDown.Remove(Ctrl)
InputManager->>KeyboardBuffer: ReleaseKeyboardBuffer()
KeyboardBuffer->>KeyboardBuffer: Check stuck modifiers<br/>Ctrl not in PhysicalModifiersDown
KeyboardBuffer->>KeyboardBuffer: Release lingering Ctrl
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Poem
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary by CodeRabbit
Release Notes
New Features
Bug Fixes
Improvements
✏️ Tip: You can customize this high-level summary in your review settings.