This commit is contained in:
Niels Laute
2025-11-09 15:05:41 +01:00
14 changed files with 52 additions and 48 deletions

View File

@@ -105,6 +105,7 @@
^src/common/notifications/BackgroundActivatorDLL/cpp\.hint$ ^src/common/notifications/BackgroundActivatorDLL/cpp\.hint$
^src/common/sysinternals/Eula/ ^src/common/sysinternals/Eula/
^src/modules/cmdpal/doc/initial-sdk-spec/list-elements-mock-002\.pdn$ ^src/modules/cmdpal/doc/initial-sdk-spec/list-elements-mock-002\.pdn$
^src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleMarkdownImagesPage\.cs$
^src/modules/colorPicker/ColorPickerUI/Shaders/GridShader\.cso$ ^src/modules/colorPicker/ColorPickerUI/Shaders/GridShader\.cso$
^src/modules/launcher/Plugins/Microsoft\.PowerToys\.Run\.Plugin\.TimeDate/Properties/ ^src/modules/launcher/Plugins/Microsoft\.PowerToys\.Run\.Plugin\.TimeDate/Properties/
^src/modules/MouseUtils/MouseJumpUI/MainForm\.resx$ ^src/modules/MouseUtils/MouseJumpUI/MainForm\.resx$

View File

@@ -101,7 +101,6 @@ ATX
ATRIOX ATRIOX
aumid aumid
authenticode authenticode
Authenticode
AUTOBUDDY AUTOBUDDY
AUTOCHECKBOX AUTOCHECKBOX
AUTOHIDE AUTOHIDE
@@ -316,7 +315,6 @@ CURSORINFO
cursorpos cursorpos
CURSORSHOWING CURSORSHOWING
CURSORWRAP CURSORWRAP
CursorWrap
customaction customaction
CUSTOMACTIONTEST CUSTOMACTIONTEST
CUSTOMFORMATPLACEHOLDER CUSTOMFORMATPLACEHOLDER
@@ -432,7 +430,6 @@ DSTINVERT
DString DString
DSVG DSVG
dto dto
DTo
DUMMYUNIONNAME DUMMYUNIONNAME
dutil dutil
DVASPECT DVASPECT
@@ -466,7 +463,6 @@ EDITKEYBOARD
EDITSHORTCUTS EDITSHORTCUTS
EDITTEXT EDITTEXT
EFile EFile
ekus
eku eku
emojis emojis
ENABLEDELAYEDEXPANSION ENABLEDELAYEDEXPANSION
@@ -1152,7 +1148,6 @@ NONCLIENTMETRICSW
NONELEVATED NONELEVATED
nonspace nonspace
nonstd nonstd
nullrefs
NOOWNERZORDER NOOWNERZORDER
NOPARENTNOTIFY NOPARENTNOTIFY
NOPREFIX NOPREFIX
@@ -1192,8 +1187,8 @@ ntfs
NTSTATUS NTSTATUS
NTSYSAPI NTSYSAPI
NULLCURSOR NULLCURSOR
nullref
nullonfailure nullonfailure
nullref
numberbox numberbox
nwc nwc
ocr ocr

View File

@@ -253,7 +253,7 @@ _SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING
# hit-count: 1 file-count: 1 # hit-count: 1 file-count: 1
# Amazon # Amazon
\bamazon\.com/[-\w]+/(?:dp/[0-9A-Z]+|)[^"'\s]+ \bamazon\.com/[-\w]+/(?:dp/[0-9A-Z]+|)
# hit-count: 3 file-count: 3 # hit-count: 3 file-count: 3
# imgur # imgur

View File

@@ -52,8 +52,6 @@ extends:
name: SHINE-INT-S name: SHINE-INT-S
${{ if eq(parameters.useVSPreview, true) }}: ${{ if eq(parameters.useVSPreview, true) }}:
demands: ImageOverride -equals SHINE-VS17-Preview demands: ImageOverride -equals SHINE-VS17-Preview
${{ else }}:
image: SHINE-VS17-Latest
os: windows os: windows
sdl: sdl:
tsa: tsa:
@@ -75,7 +73,6 @@ extends:
name: SHINE-INT-L name: SHINE-INT-L
demands: demands:
# Our INT agents have a large disk mounted at P:\ # Our INT agents have a large disk mounted at P:\
- WorkFolder -equals P:\_work
- ${{ if eq(parameters.useVSPreview, true) }}: - ${{ if eq(parameters.useVSPreview, true) }}:
- ImageOverride -equals SHINE-VS17-Preview - ImageOverride -equals SHINE-VS17-Preview
os: windows os: windows
@@ -126,7 +123,6 @@ extends:
parameters: parameters:
pool: pool:
name: SHINE-INT-L name: SHINE-INT-L
image: SHINE-VS17-Latest
os: windows os: windows
official: true official: true
codeSign: true codeSign: true

View File

@@ -111,6 +111,7 @@ jobs:
${{ else }}: ${{ else }}:
OutputBuildPlatform: ${{ platform }} OutputBuildPlatform: ${{ platform }}
variables: variables:
NUGET_PACKAGES: 'C:\NuGetPackages' # Some of our build steps cache these here... and it was apparently part of the global environment
MakeAppxPath: 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x86\MakeAppx.exe' MakeAppxPath: 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x86\MakeAppx.exe'
# Azure DevOps abhors a vacuum # Azure DevOps abhors a vacuum
# If these are blank, expansion will fail later on... which will result in direct substitution of the variable *names* # If these are blank, expansion will fail later on... which will result in direct substitution of the variable *names*
@@ -139,6 +140,10 @@ jobs:
- output: pipelineArtifact - output: pipelineArtifact
artifactName: $(JobOutputArtifactName) artifactName: $(JobOutputArtifactName)
targetPath: $(Build.ArtifactStagingDirectory) targetPath: $(Build.ArtifactStagingDirectory)
- output: pipelineArtifact
artifactName: $(JobOutputArtifactName)-failure-$(System.JobAttempt)
targetPath: $(LogOutputDirectory)
condition: or(failed(), canceled())
steps: steps:
- checkout: self - checkout: self
clean: true clean: true
@@ -395,7 +400,7 @@ jobs:
### HACK: On ARM64 builds, building an app with Windows App SDK copies the x64 WebView2 dll instead of the ARM64 one. This task makes sure the right dll is used. ### HACK: On ARM64 builds, building an app with Windows App SDK copies the x64 WebView2 dll instead of the ARM64 one. This task makes sure the right dll is used.
- task: CopyFiles@2 - task: CopyFiles@2
displayName: HACK Copy core WebView2 ARM64 dll to output directory displayName: HACK Copy core WebView2 ARM64 dll to output directory
condition: eq(variables['BuildPlatform'],'arm64') condition: and(succeeded(), eq(variables['BuildPlatform'], 'arm64'))
inputs: inputs:
contents: packages/Microsoft.Web.WebView2.1.0.2903.40/runtimes/win-ARM64/native_uap/Microsoft.Web.WebView2.Core.dll contents: packages/Microsoft.Web.WebView2.1.0.2903.40/runtimes/win-ARM64/native_uap/Microsoft.Web.WebView2.Core.dll
targetFolder: $(Build.SourcesDirectory)/ARM64/Release/WinUI3Apps/ targetFolder: $(Build.SourcesDirectory)/ARM64/Release/WinUI3Apps/
@@ -434,11 +439,11 @@ jobs:
inputs: inputs:
testResultsFormat: VSTest testResultsFormat: VSTest
testResultsFiles: '**/*.trx' testResultsFiles: '**/*.trx'
condition: ne(variables['BuildPlatform'],'arm64') condition: and(succeeded(), ne(variables['BuildPlatform'], 'arm64'))
# Native dlls # Native dlls
- task: VSTest@2 - task: VSTest@2
condition: ne(variables['BuildPlatform'],'arm64') # No arm64 agents to run the tests. condition: and(succeeded(), ne(variables['BuildPlatform'], 'arm64')) # No arm64 agents to run the tests.
displayName: 'Native Tests' displayName: 'Native Tests'
inputs: inputs:
platform: '$(BuildPlatform)' platform: '$(BuildPlatform)'

View File

@@ -46,7 +46,7 @@
<PreprocessorDefinitions>_DEBUG;NEWPLUSSHELLEXTENSIONWIN10_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>_DEBUG;NEWPLUSSHELLEXTENSIONWIN10_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode> <ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader> <PrecompiledHeader>Use</PrecompiledHeader>
<AdditionalIncludeDirectories>..\..\..\common\Telemetry;..\..\;..\..\..\;%(AdditionalIncludeDirectories);..\NewShellExtensionContextMenu</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\..\..\common\Telemetry;..\..\;..\..\..\;%(AdditionalIncludeDirectories);..\NewShellExtensionContextMenu;$(MSBuildThisFileDirectory)Generated Files</AdditionalIncludeDirectories>
<CompileAsWinRT>false</CompileAsWinRT> <CompileAsWinRT>false</CompileAsWinRT>
<LanguageStandard>stdcpplatest</LanguageStandard> <LanguageStandard>stdcpplatest</LanguageStandard>
</ClCompile> </ClCompile>
@@ -67,7 +67,7 @@
<PreprocessorDefinitions>NDEBUG;NEWPLUSSHELLEXTENSIONWIN10_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>NDEBUG;NEWPLUSSHELLEXTENSIONWIN10_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode> <ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader> <PrecompiledHeader>Use</PrecompiledHeader>
<AdditionalIncludeDirectories>..\..\..\common\Telemetry;..\..\;..\..\..\;%(AdditionalIncludeDirectories);..\NewShellExtensionContextMenu</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\..\..\common\Telemetry;..\..\;..\..\..\;%(AdditionalIncludeDirectories);..\NewShellExtensionContextMenu;$(MSBuildThisFileDirectory)Generated Files</AdditionalIncludeDirectories>
<CompileAsWinRT>false</CompileAsWinRT> <CompileAsWinRT>false</CompileAsWinRT>
<LanguageStandard>stdcpplatest</LanguageStandard> <LanguageStandard>stdcpplatest</LanguageStandard>
</ClCompile> </ClCompile>

View File

@@ -88,9 +88,6 @@ namespace Awake.Core.Native
[return: MarshalAs(UnmanagedType.Bool)] [return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool GetCursorPos(out Point lpPoint); internal static extern bool GetCursorPos(out Point lpPoint);
[DllImport("user32.dll", SetLastError = true)]
internal static extern bool ScreenToClient(IntPtr hWnd, ref Point lpPoint);
[DllImport("user32.dll", SetLastError = true)] [DllImport("user32.dll", SetLastError = true)]
internal static extern bool GetMessage(out Msg lpMsg, IntPtr hWnd, uint wMsgFilterMin, uint wMsgFilterMax); internal static extern bool GetMessage(out Msg lpMsg, IntPtr hWnd, uint wMsgFilterMin, uint wMsgFilterMax);

View File

@@ -61,9 +61,8 @@ namespace Awake.Core
Bridge.SetForegroundWindow(hWnd); Bridge.SetForegroundWindow(hWnd);
// Get cursor position and convert it to client coordinates // Get cursor position in screen coordinates
Bridge.GetCursorPos(out Models.Point cursorPos); Bridge.GetCursorPos(out Models.Point cursorPos);
Bridge.ScreenToClient(hWnd, ref cursorPos);
// Set menu information // Set menu information
MenuInfo menuInfo = new() MenuInfo menuInfo = new()

View File

@@ -51,10 +51,10 @@ internal sealed partial class GlobalErrorHandler
// without its exception being observed. It is NOT raised immediately // without its exception being observed. It is NOT raised immediately
// when the Task faults; timing depends on GC finalization. // when the Task faults; timing depends on GC finalization.
e.SetObserved(); e.SetObserved();
HandleException(e.Exception, Context.UnobservedTaskException, isRecoverable: true); HandleException(e.Exception, Context.UnobservedTaskException);
} }
private void HandleException(Exception ex, Context context, bool isRecoverable = false) private static void HandleException(Exception ex, Context context)
{ {
Logger.LogError($"Unhandled exception detected ({context})", ex); Logger.LogError($"Unhandled exception detected ({context})", ex);
@@ -70,10 +70,25 @@ internal sealed partial class GlobalErrorHandler
StoreReport(report, storeOnDesktop: false); StoreReport(report, storeOnDesktop: false);
string message;
string caption;
try
{
message = ResourceLoaderInstance.GetString("GlobalErrorHandler_CrashMessageBox_Message");
caption = ResourceLoaderInstance.GetString("GlobalErrorHandler_CrashMessageBox_Caption");
}
catch
{
// The resource loader may not be available if the exception occurred during startup.
// Fall back to hardcoded strings in that case.
message = "Command Palette has encountered a fatal error and must close.";
caption = "Command Palette - Fatal error";
}
PInvoke.MessageBox( PInvoke.MessageBox(
HWND.Null, HWND.Null,
"Command Palette has encountered a fatal error and must close.\n\nAn error report has been saved to your desktop.", message,
"Unhandled Error", caption,
MESSAGEBOX_STYLE.MB_ICONERROR); MESSAGEBOX_STYLE.MB_ICONERROR);
} }
} }

View File

@@ -431,8 +431,8 @@ Right-click to remove the key combination, thereby deactivating the shortcut.</v
<data name="Run_Radio_Position_LastPosition.Content" xml:space="preserve"> <data name="Run_Radio_Position_LastPosition.Content" xml:space="preserve">
<value>Last Position</value> <value>Last Position</value>
<comment>Reopen the window where it was last closed</comment> <comment>Reopen the window where it was last closed</comment>
</data> </data>
<data name="TrayMenu_Settings" xml:space="preserve"> <data name="TrayMenu_Settings" xml:space="preserve">
<value>Settings</value> <value>Settings</value>
</data> </data>
<data name="TrayMenu_Close" xml:space="preserve"> <data name="TrayMenu_Close" xml:space="preserve">
@@ -493,28 +493,34 @@ Right-click to remove the key combination, thereby deactivating the shortcut.</v
<data name="Settings_ExtensionsPage_Reloading_Text.Text" xml:space="preserve"> <data name="Settings_ExtensionsPage_Reloading_Text.Text" xml:space="preserve">
<value>Reloading extensions..</value> <value>Reloading extensions..</value>
</data> </data>
<data name="Settings_ExtensionsPage_Banner_Header.Text" xml:space="preserve"> <data name="Settings_ExtensionsPage_Banner_Header.Text" xml:space="preserve">
<value>Discover more extensions</value> <value>Discover more extensions</value>
</data> </data>
<data name="Settings_ExtensionsPage_Banner_Description.Text" xml:space="preserve"> <data name="Settings_ExtensionsPage_Banner_Description.Text" xml:space="preserve">
<value>Find more extensions on the Microsoft Store or WinGet.</value> <value>Find more extensions on the Microsoft Store or WinGet.</value>
</data> </data>
<data name="Settings_ExtensionsPage_Banner_Hyperlink.Content" xml:space="preserve"> <data name="Settings_ExtensionsPage_Banner_Hyperlink.Content" xml:space="preserve">
<value>Learn how to create your own extensions</value> <value>Learn how to create your own extensions</value>
</data> </data>
<data name="Settings_ExtensionsPage_FindExtensions_MicrosoftStore.[using:Microsoft.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve"> <data name="Settings_ExtensionsPage_FindExtensions_MicrosoftStore.[using:Microsoft.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Find extensions on the Microsoft Store</value> <value>Find extensions on the Microsoft Store</value>
</data> </data>
<data name="Settings_ExtensionsPage_FindExtensions_MicrosoftStore.[using:Microsoft.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve"> <data name="Settings_ExtensionsPage_FindExtensions_MicrosoftStore.[using:Microsoft.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
<value>Microsoft Store</value> <value>Microsoft Store</value>
</data> </data>
<data name="Settings_ExtensionsPage_FindExtensions_WinGet.[using:Microsoft.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve"> <data name="Settings_ExtensionsPage_FindExtensions_WinGet.[using:Microsoft.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
<value>Find extensions on WinGet</value> <value>Find extensions on WinGet</value>
</data> </data>
<data name="Settings_ExtensionsPage_FindExtensions_WinGet.[using:Microsoft.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve"> <data name="Settings_ExtensionsPage_FindExtensions_WinGet.[using:Microsoft.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
<value>Microsoft Store</value> <value>Microsoft Store</value>
</data> </data>
<data name="Settings_ExtensionsPage_SearchBox_Placeholder.PlaceholderText" xml:space="preserve"> <data name="Settings_ExtensionsPage_SearchBox_Placeholder.PlaceholderText" xml:space="preserve">
<value>Search extensions</value> <value>Search extensions</value>
</data> </data>
<data name="GlobalErrorHandler_CrashMessageBox_Message" xml:space="preserve">
<value>Command Palette has encountered a fatal error and must close.</value>
</data>
<data name="GlobalErrorHandler_CrashMessageBox_Caption" xml:space="preserve">
<value>Command Palette - Fatal error</value>
</data>
</root> </root>

View File

@@ -63,7 +63,7 @@ internal sealed partial class SampleListPageWithDetails : ListPage
Details = new Details() Details = new Details()
{ {
Title = "Hero Image Example", Title = "Hero Image Example",
HeroImage = new IconInfo("https://m.media-amazon.com/images/M/MV5BNDBkMzVmNGQtYTM2OC00OWRjLTk5OWMtNzNkMDI4NjFjNTZmXkEyXkFqcGdeQXZ3ZXNsZXk@._V1_QL75_UX500_CR0,0,500,281_.jpg"), HeroImage = new IconInfo("https://m.media-amazon.com/images/M/MV5BNDBkMzVmNGQtYTM2OC00OWRjLTk5OWMtNzNkMDI4NjFjNTZmXkEyXkFqcGdeQXZ3ZXNsZXk@._V1_QL75_UX500_CR0,0,500,281_.jpg"), /* #no-spell-check-line */
Body = "It is literally an image of a hero", Body = "It is literally an image of a hero",
}, },
}, },

View File

@@ -10,7 +10,7 @@
<Grid> <Grid>
<Button <Button
AutomationProperties.Name="{x:Bind AccessibleName, Mode=OneWay}" x:Uid="ShortcutConflictControl_Automation"
Click="ShortcutConflictBtn_Click" Click="ShortcutConflictBtn_Click"
Style="{StaticResource SubtleButtonStyle}"> Style="{StaticResource SubtleButtonStyle}">
<Grid ColumnSpacing="16"> <Grid ColumnSpacing="16">

View File

@@ -88,15 +88,6 @@ namespace Microsoft.PowerToys.Settings.UI.Controls
} }
} }
public string AccessibleName
{
get
{
var title = ResourceLoader.GetString("ShortcutConflictControl_Title");
return $"{title}, {ConflictText}";
}
}
public bool HasConflicts => ConflictCount > 0; public bool HasConflicts => ConflictCount > 0;
private static void OnAllHotkeyConflictsDataChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) private static void OnAllHotkeyConflictsDataChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
@@ -113,7 +104,6 @@ namespace Microsoft.PowerToys.Settings.UI.Controls
{ {
OnPropertyChanged(nameof(ConflictCount)); OnPropertyChanged(nameof(ConflictCount));
OnPropertyChanged(nameof(ConflictText)); OnPropertyChanged(nameof(ConflictText));
OnPropertyChanged(nameof(AccessibleName));
OnPropertyChanged(nameof(HasConflicts)); OnPropertyChanged(nameof(HasConflicts));
// Update visibility based on conflict count // Update visibility based on conflict count

View File

@@ -5580,7 +5580,7 @@ To record a specific window, enter the hotkey with the Alt key in the opposite m
<data name="ShortcutConflictControl_Title.Text" xml:space="preserve"> <data name="ShortcutConflictControl_Title.Text" xml:space="preserve">
<value>Shortcut conflicts</value> <value>Shortcut conflicts</value>
</data> </data>
<data name="ShortcutConflictControl_Automation.[using:Microsoft.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve"> <data name="ShortcutConflictControl_Automation.[using:Microsoft.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
<value>Shortcut conflicts</value> <value>Shortcut conflicts</value>
</data> </data>
<data name="ShortcutConflictControl_NoConflictsFound" xml:space="preserve"> <data name="ShortcutConflictControl_NoConflictsFound" xml:space="preserve">