From ff9a590edeed04c409a25d1a0b90126822d04a81 Mon Sep 17 00:00:00 2001 From: Marterich <47688561+Marterich@users.noreply.github.com> Date: Mon, 31 Mar 2025 21:15:28 +0200 Subject: [PATCH] Refactor Hotkey Handling to improve readability and fix a bug --- scripts/main.ps1 | 51 ++++++++++++++++-------------------------------- 1 file changed, 17 insertions(+), 34 deletions(-) diff --git a/scripts/main.ps1 b/scripts/main.ps1 index fe12165a..a74ef41a 100644 --- a/scripts/main.ps1 +++ b/scripts/main.ps1 @@ -250,51 +250,34 @@ $sync.SearchBarClearButton.Add_Click({ # add some shortcuts for people that don't like clicking $commonKeyEvents = { + # Prevent shortcuts from executing if a process is already running if ($sync.ProcessRunning -eq $true) { return } - if ($_.Key -eq "Escape") { - $sync.SearchBar.SelectAll() - $sync.SearchBar.Text = "" - $sync.SearchBarClearButton.Visibility = "Collapsed" - return - } - - # don't ask, I know what I'm doing, just go... - if (($_.Key -eq "Q" -and $_.KeyboardDevice.Modifiers -eq "Ctrl")) { - $this.Close() + # Handle key presses of single keys + switch ($_.Key) { + "Escape" { $sync.SearchBar.Text = "" } } + # Handle Alt key combinations for navigation if ($_.KeyboardDevice.Modifiers -eq "Alt") { - if ($_.SystemKey -eq "I") { - Invoke-WPFButton "WPFTab1BT" - } - if ($_.SystemKey -eq "T") { - Invoke-WPFButton "WPFTab2BT" - } - if ($_.SystemKey -eq "C") { - Invoke-WPFButton "WPFTab3BT" - } - if ($_.SystemKey -eq "U") { - Invoke-WPFButton "WPFTab4BT" - } - if ($_.SystemKey -eq "M") { - Invoke-WPFButton "WPFTab5BT" - } - if ($_.SystemKey -eq "P") { - Write-Host "Your Windows Product Key: $((Get-WmiObject -query 'select * from SoftwareLicensingService').OA3xOriginalProductKey)" + $keyEventArgs = $_ + switch ($_.SystemKey) { + "I" { Invoke-WPFButton "WPFTab1BT"; $keyEventArgs.Handled = $true } # Navigate to Install tab and suppress Windows Warning Sound + "T" { Invoke-WPFButton "WPFTab2BT"; $keyEventArgs.Handled = $true } # Navigate to Tweaks tab + "C" { Invoke-WPFButton "WPFTab3BT"; $keyEventArgs.Handled = $true } # Navigate to Config tab + "U" { Invoke-WPFButton "WPFTab4BT"; $keyEventArgs.Handled = $true } # Navigate to Updates tab + "M" { Invoke-WPFButton "WPFTab5BT"; $keyEventArgs.Handled = $true } # Navigate to MicroWin tab } } - # shortcut for the filter box - if ($_.Key -eq "F" -and $_.KeyboardDevice.Modifiers -eq "Ctrl") { - if ($sync.SearchBar.Text -eq "Ctrl-F to filter") { - $sync.SearchBar.SelectAll() - $sync.SearchBar.Text = "" + # Handle Ctrl key combinations for specific actions + if ($_.KeyboardDevice.Modifiers -eq "Ctrl") { + switch ($_.Key) { + "F" { $sync.SearchBar.Focus() } # Focus on the search bar + "Q" { $this.Close() } # Close the application } - $sync.SearchBar.Focus() } } - $sync["Form"].Add_PreViewKeyDown($commonKeyEvents) $sync["Form"].Add_MouseLeftButtonDown({