@@ -1659,8 +1659,8 @@ Public Sub InitializeAllHotkeys()
16591659 'File menu
16601660 .AddAccelerator vbKeyN, vbCtrlMask, "New image" , "file_new" , True , False , True , UNDO_Nothing
16611661 .AddAccelerator vbKeyO, vbCtrlMask, "Open" , "file_open" , True , False , True , UNDO_Nothing
1662- .AddAccelerator vbKeyF4 , vbCtrlMask, "Close" , "file_close" , True , True , True , UNDO_Nothing
1663- .AddAccelerator vbKeyF4 , vbCtrlMask Or vbShiftMask , "Close all" , "file_closeall" , True , True , True , UNDO_Nothing
1662+ .AddAccelerator vbKeyW , vbCtrlMask, "Close" , "file_close" , True , True , True , UNDO_Nothing
1663+ .AddAccelerator vbKeyW , vbCtrlMask Or vbAltMask , "Close all" , "file_closeall" , True , True , True , UNDO_Nothing
16641664 .AddAccelerator vbKeyS, vbCtrlMask, "Save" , "file_save" , True , True , True , UNDO_Nothing
16651665 .AddAccelerator vbKeyS, vbCtrlMask Or vbAltMask Or vbShiftMask, "Save copy" , "file_savecopy" , True , False , True , UNDO_Nothing
16661666 .AddAccelerator vbKeyS, vbCtrlMask Or vbShiftMask, "Save as" , "file_saveas" , True , True , True , UNDO_Nothing
@@ -1676,16 +1676,16 @@ Public Sub InitializeAllHotkeys()
16761676
16771677 'Most-recently used files. Note that we cannot automatically associate these with a menu, as these menus may not
16781678 ' exist at run-time. (They are dynamically created as necessary.)
1679- .AddAccelerator vbKey0 , vbCtrlMask, "MRU_0"
1680- .AddAccelerator vbKey1 , vbCtrlMask, "MRU_1"
1681- .AddAccelerator vbKey2 , vbCtrlMask, "MRU_2"
1682- .AddAccelerator vbKey3 , vbCtrlMask, "MRU_3"
1683- .AddAccelerator vbKey4 , vbCtrlMask, "MRU_4"
1684- .AddAccelerator vbKey5 , vbCtrlMask, "MRU_5"
1685- .AddAccelerator vbKey6 , vbCtrlMask, "MRU_6"
1686- .AddAccelerator vbKey7 , vbCtrlMask, "MRU_7"
1687- .AddAccelerator vbKey8 , vbCtrlMask, "MRU_8"
1688- .AddAccelerator vbKey9 , vbCtrlMask, "MRU_9"
1679+ .AddAccelerator vbKey1 , vbCtrlMask Or vbShiftMask , "MRU_0" , requiresOpenImage:= False
1680+ .AddAccelerator vbKey2 , vbCtrlMask Or vbShiftMask , "MRU_1" , requiresOpenImage:= False
1681+ .AddAccelerator vbKey3 , vbCtrlMask Or vbShiftMask , "MRU_2" , requiresOpenImage:= False
1682+ .AddAccelerator vbKey4 , vbCtrlMask Or vbShiftMask , "MRU_3" , requiresOpenImage:= False
1683+ .AddAccelerator vbKey5 , vbCtrlMask Or vbShiftMask , "MRU_4" , requiresOpenImage:= False
1684+ .AddAccelerator vbKey6 , vbCtrlMask Or vbShiftMask , "MRU_5" , requiresOpenImage:= False
1685+ .AddAccelerator vbKey7 , vbCtrlMask Or vbShiftMask , "MRU_6" , requiresOpenImage:= False
1686+ .AddAccelerator vbKey8 , vbCtrlMask Or vbShiftMask , "MRU_7" , requiresOpenImage:= False
1687+ .AddAccelerator vbKey9 , vbCtrlMask Or vbShiftMask , "MRU_8" , requiresOpenImage:= False
1688+ .AddAccelerator vbKey0 , vbCtrlMask Or vbShiftMask , "MRU_9" , requiresOpenImage:= False
16891689
16901690 'Edit menu
16911691 .AddAccelerator vbKeyZ, vbCtrlMask, "Undo" , "edit_undo" , True , True , False , UNDO_Nothing
@@ -1711,17 +1711,17 @@ Public Sub InitializeAllHotkeys()
17111711 .AddAccelerator vbKeyX, vbCtrlMask Or vbAltMask, "Trim empty image borders" , "image_trim" , True , True , False , UNDO_ImageHeader
17121712
17131713 'Image -> Rotate submenu
1714- '.AddAccelerator vbKeyR, 0, "Rotate image 90 clockwise", "image_rotate90", True, True, False, UNDO_Image
1715- '.AddAccelerator vbKeyL, 0, "Rotate image 90 counter-clockwise", "image_rotate270", True, True, False, UNDO_Image
17161714 .AddAccelerator vbKeyR, vbCtrlMask Or vbShiftMask Or vbAltMask, "Arbitrary image rotation" , "image_rotatearbitrary" , True , True , True , UNDO_Nothing
17171715
17181716 'Layer Menu
1717+ .AddAccelerator vbKeyN, vbCtrlMask Or vbShiftMask, "Add new layer" , "layer_addbasic" , True , True , True , UNDO_Nothing
17191718 .AddAccelerator vbKeyJ, vbCtrlMask, "Layer via copy" , "layer_addviacopy" , True , True , False , UNDO_Image_VectorSafe
17201719 .AddAccelerator vbKeyJ, vbCtrlMask Or vbShiftMask, "Layer via cut" , "layer_addviacut" , True , True , False , UNDO_Image
17211720 .AddAccelerator vbKeyPageUp, vbCtrlMask Or vbAltMask, "Go to top layer" , "layer_gotop" , True , True , False , UNDO_Nothing
17221721 .AddAccelerator vbKeyPageDown, vbCtrlMask Or vbAltMask, "Go to bottom layer" , "layer_gobottom" , True , True , False , UNDO_Nothing
17231722 .AddAccelerator vbKeyPageUp, vbAltMask, "Go to layer above" , "layer_goup" , True , True , False , UNDO_Nothing
17241723 .AddAccelerator vbKeyPageDown, vbAltMask, "Go to layer below" , "layer_godown" , True , True , False , UNDO_Nothing
1724+ .AddAccelerator vbKeyE, vbCtrlMask, "layer_mergedown" , "layer_mergedown" , False , True , False , UNDO_Image
17251725 .AddAccelerator vbKeyE, vbCtrlMask Or vbShiftMask, "Merge visible layers" , "image_mergevisible" , True , True , False , UNDO_Image
17261726 .AddAccelerator vbKeyF, vbCtrlMask Or vbShiftMask, "Flatten image" , "image_flatten" , True , True , True , UNDO_Nothing
17271727
@@ -1737,6 +1737,8 @@ Public Sub InitializeAllHotkeys()
17371737 'Adjustments Menu
17381738
17391739 'Adjustments top shortcut menu
1740+ .AddAccelerator vbKeyL, vbCtrlMask Or vbShiftMask, "Auto correct" , "adj_autocorrect" , True , True , False , UNDO_Layer
1741+ .AddAccelerator vbKeyL, vbCtrlMask Or vbShiftMask Or vbAltMask, "Auto enhance" , "adj_autoenhance" , True , True , False , UNDO_Layer
17401742 .AddAccelerator vbKeyU, vbCtrlMask Or vbShiftMask, "Black and white" , "adj_blackandwhite" , True , True , True , UNDO_Nothing
17411743 .AddAccelerator vbKeyB, vbCtrlMask Or vbShiftMask, "Brightness and contrast" , "adj_bandc" , True , True , True , UNDO_Nothing
17421744 .AddAccelerator vbKeyC, vbCtrlMask Or vbAltMask, "Color balance" , "adj_colorbalance" , True , True , True , UNDO_Nothing
@@ -1745,7 +1747,9 @@ Public Sub InitializeAllHotkeys()
17451747 .AddAccelerator vbKeyH, vbCtrlMask Or vbShiftMask, "Shadows and highlights" , "adj_sandh" , True , True , True , UNDO_Nothing
17461748 .AddAccelerator vbKeyAdd, vbCtrlMask Or vbAltMask, "Vibrance" , "adj_vibrance" , True , True , True , UNDO_Nothing
17471749 .AddAccelerator VK_OEM_PLUS, vbCtrlMask Or vbAltMask, "Vibrance" , , True , True , True , UNDO_Nothing
1748- .AddAccelerator vbKeyW, vbCtrlMask, "White balance" , "adj_whitebalance" , True , True , True , UNDO_Nothing
1750+
1751+ 'Ctrl+W has been remapped to File > Close
1752+ '.AddAccelerator vbKeyW, vbCtrlMask, "White balance", "adj_whitebalance", True, True, True, UNDO_Nothing
17491753
17501754 'Color adjustments
17511755 .AddAccelerator vbKeyH, vbCtrlMask, "Hue and saturation" , "adj_hsl" , True , True , True , UNDO_Nothing
@@ -1783,16 +1787,16 @@ Public Sub InitializeAllHotkeys()
17831787 .AddAccelerator vbKeyM, vbCtrlMask Or vbAltMask, "Plugin manager" , "tools_3rdpartylibs" , False , False , True , UNDO_Nothing
17841788
17851789 'View menu
1786- .AddAccelerator vbKey0, 0 , "FitOnScreen" , "zoom_fit " , False , True , False , UNDO_Nothing
1787- ' .AddAccelerator vbKeyAdd, 0 , "Zoom_In", "zoom_in ", False, True, False, UNDO_NOTHING
1788- ' .AddAccelerator VK_OEM_PLUS, 0 , "Zoom_In", , False, True, False, UNDO_NOTHING
1789- ' .AddAccelerator vbKeySubtract, 0 , "Zoom_Out", "zoom_out ", False, True, False, UNDO_NOTHING
1790- ' .AddAccelerator VK_OEM_MINUS, 0 , "Zoom_Out", , False, True, False, UNDO_NOTHING
1791- .AddAccelerator vbKey5, 0 , "Zoom_161" , "zoom_16_1" , False , True , False , UNDO_Nothing
1792- .AddAccelerator vbKey4, 0 , "Zoom_81" , "zoom_8_1" , False , True , False , UNDO_Nothing
1793- .AddAccelerator vbKey3, 0 , "Zoom_41" , "zoom_4_1" , False , True , False , UNDO_Nothing
1794- .AddAccelerator vbKey2, 0 , "Zoom_21" , "zoom_2_1" , False , True , False , UNDO_Nothing
1795- .AddAccelerator vbKey1, 0 , "Actual_Size" , "zoom_actual" , False , True , False , UNDO_Nothing
1790+ .AddAccelerator vbKey0, vbCtrlMask , "FitOnScreen" , "view_fit " , False , True , False , UNDO_Nothing
1791+ .AddAccelerator vbKeyAdd, vbCtrlMask , "Zoom_In" , "view_zoomin " , False , True , False , UNDO_Nothing
1792+ .AddAccelerator VK_OEM_PLUS, vbCtrlMask , "Zoom_In" , , False , True , False , UNDO_Nothing
1793+ .AddAccelerator vbKeySubtract, vbCtrlMask , "Zoom_Out" , "view_zoomout " , False , True , False , UNDO_Nothing
1794+ .AddAccelerator VK_OEM_MINUS, vbCtrlMask , "Zoom_Out" , , False , True , False , UNDO_Nothing
1795+ .AddAccelerator vbKey5, vbCtrlMask , "Zoom_161" , "zoom_16_1" , False , True , False , UNDO_Nothing
1796+ .AddAccelerator vbKey4, vbCtrlMask , "Zoom_81" , "zoom_8_1" , False , True , False , UNDO_Nothing
1797+ .AddAccelerator vbKey3, vbCtrlMask , "Zoom_41" , "zoom_4_1" , False , True , False , UNDO_Nothing
1798+ .AddAccelerator vbKey2, vbCtrlMask , "Zoom_21" , "zoom_2_1" , False , True , False , UNDO_Nothing
1799+ .AddAccelerator vbKey1, vbCtrlMask , "Actual_Size" , "zoom_actual" , False , True , False , UNDO_Nothing
17961800 .AddAccelerator vbKey2, vbShiftMask, "Zoom_12" , "zoom_1_2" , False , True , False , UNDO_Nothing
17971801 .AddAccelerator vbKey3, vbShiftMask, "Zoom_14" , "zoom_1_4" , False , True , False , UNDO_Nothing
17981802 .AddAccelerator vbKey4, vbShiftMask, "Zoom_18" , "zoom_1_8" , False , True , False , UNDO_Nothing
@@ -3323,13 +3327,17 @@ Public Sub UpdateSpecialMenu_RecentFiles()
33233327 Else
33243328
33253329 'If actual MRU paths exist, note that we apply them *without* translations, obviously.
3326- Dim i As Long
3330+ Dim i As Long , hotkeyNumber As Long
33273331 For i = 0 To numOfMRUFiles - 1
33283332
33293333 tmpString = g_RecentFiles.GetMenuCaption(i)
33303334
33313335 'Entries under "10" get a free accelerator of the form "Ctrl+i"
3332- If (i < 10 ) Then tmpString = tmpString & vbTab & g_Language.TranslateMessage("Ctrl" ) & "+" & i
3336+ If (i < 10 ) Then
3337+ hotkeyNumber = i + 1
3338+ If (i = 9 ) Then hotkeyNumber = 0
3339+ tmpString = tmpString & vbTab & g_Language.TranslateMessage("Ctrl" ) & "+" & g_Language.TranslateMessage("Shift" ) & "+" & hotkeyNumber
3340+ End If
33333341
33343342 tmpMii.dwTypeData = StrPtr(tmpString)
33353343 SetMenuItemInfoW hMenu, i, 1 &, tmpMii
0 commit comments