Always On Top: The opacity should be able to configure the hotkey individually#46410
Merged
Always On Top: The opacity should be able to configure the hotkey individually#46410
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the Always On Top module to allow configuring the “increase opacity” and “decrease opacity” hotkeys independently from the main pin/unpin hotkey, and adjusts centralized hotkey handling so opacity shortcuts are only intercepted when the foreground window is actually pinned.
Changes:
- Added separate settings + UI for Increase/Decrease opacity hotkeys (new settings fields + XAML controls + dashboard display).
- Updated Always On Top backend to load/store/register the new hotkeys and re-register on settings changes.
- Updated centralized hotkey handling to return
false(pass-through) for opacity hotkeys when the active window isn’t pinned.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/settings-ui/Settings.UI/ViewModels/DashboardViewModel.cs | Shows three Always On Top shortcuts (activation/increase/decrease) on the dashboard. |
| src/settings-ui/Settings.UI/ViewModels/AlwaysOnTopViewModel.cs | Adds bindable IncreaseOpacityHotkey / DecreaseOpacityHotkey settings + IPC updates. |
| src/settings-ui/Settings.UI/Strings/en-us/Resources.resw | Adds localized header/description strings for the new hotkey cards. |
| src/settings-ui/Settings.UI/SettingsXAML/Views/AlwaysOnTopPage.xaml | Replaces markdown shortcut descriptions with two dedicated ShortcutControl cards. |
| src/settings-ui/Settings.UI.Library/AlwaysOnTopSettings.cs | Exposes the two new hotkeys via GetAllHotkeyAccessors(). |
| src/settings-ui/Settings.UI.Library/AlwaysOnTopProperties.cs | Adds new serialized properties + defaults for opacity hotkeys. |
| src/modules/alwaysontop/AlwaysOnTopModuleInterface/dllmain.cpp | Parses new hotkey fields; updates centralized interception logic for opacity hotkeys. |
| src/modules/alwaysontop/AlwaysOnTop/SettingsConstants.h | Adds new SettingId values for opacity hotkeys. |
| src/modules/alwaysontop/AlwaysOnTop/Settings.h | Adds new HotkeyObject fields for opacity hotkeys with defaults. |
| src/modules/alwaysontop/AlwaysOnTop/Settings.cpp | Loads new hotkey fields and emits change notifications for them. |
| src/modules/alwaysontop/AlwaysOnTop/AlwaysOnTop.cpp | Registers the new hotkeys and re-registers when they change. |
niels9001
requested changes
Mar 23, 2026
src/settings-ui/Settings.UI/SettingsXAML/Views/AlwaysOnTopPage.xaml
Outdated
Show resolved
Hide resolved
src/settings-ui/Settings.UI/SettingsXAML/Views/AlwaysOnTopPage.xaml
Outdated
Show resolved
Hide resolved
niels9001
requested changes
Mar 23, 2026
Co-authored-by: Niels Laute <niels.laute@live.nl>
….xaml Co-authored-by: Niels Laute <niels.laute@live.nl>
….xaml Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Niels Laute <niels.laute@live.nl>
niels9001
approved these changes
Mar 24, 2026
zateutsch
approved these changes
Mar 24, 2026
zateutsch
added a commit
that referenced
this pull request
Mar 25, 2026
Cherry-picked commits: - Make KBM Editor pinnable (#46482) - CmdPal: Fix missing primary context command for late-bound items (#46131) - CmdPal: Ensure DockWindow property cleans up after itself (#46303) - CmdPal: Hotfix commonCallbacks array initial count to prevent negative number (#46215) - CmdPal: Fix missing app context menu actions on the main page (#46293) - CmdPal: Fix dock popup XamlRoot handling on DockControl (#46305) - CmdPal: Reduce DockWindow backdrop switching and visual artifacts (#46309) - Always On Top: The opacity should be able to configure the hotkey individually (#46410) - [OOBE] Ensure the Settings button on the SCOOBE page opens Home, not a blank page (#46203) - CmdPal: Fix scroller scrolling and down glyph (#46447) - [Settings] Decouple Settings.UI.Library from PowerDisplay.Lib to fix (#46325)
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary of the Pull Request
This pull request adds support for customizing the hotkeys used to increase and decrease the opacity of pinned windows in the Always On Top module.
Previously, these shortcuts were hardcoded to use the same modifiers as the main pin hotkey.
With these changes, users can now independently configure the increase and decrease opacity shortcuts via the settings UI, and the backend has been updated to respect and store these new settings.
Another change: If window is not Always On Topped, the opacity change take no effect, so we should not intercept, we should pass through to minimize the impact.
PR Checklist
Detailed Description of the Pull Request / Additional comments
Validation Steps Performed
Verified locally that transparency hotkey will not intercept the normal hotkey in window if Always on top not enabled