Skip to content

Commit 08b2ad8

Browse files
committed
Fill in more missing hotkeys
Thank you to commente "freakazoid" at portablefreeware.com for putting together a list of missing/mismatched hotkeys for me!
1 parent ad8ff02 commit 08b2ad8

File tree

8 files changed

+50
-55
lines changed

8 files changed

+50
-55
lines changed

Classes/pdEditBoxW.cls

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -206,11 +206,6 @@ Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageW" (ByRef lp
206206
'The Alt mask won't be returned by mouse WM notifications, so we need to retrieve it manually
207207
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
208208

209-
'Virtual key-codes currently supported by pdInput
210-
Private Const VK_SHIFT As Long = &H10
211-
Private Const VK_CONTROL As Long = &H11
212-
Private Const VK_ALT As Long = &H12 'Note that VK_ALT is referred to as VK_MENU in MSDN documentation!
213-
214209
'Handle to the system edit box wrapped by this control
215210
Private m_EditBoxHwnd As Long
216211

Classes/pdInputKeyboard.cls

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,6 @@ Private Const WM_KILLFOCUS As Long = &H8
7474
'The Alt mask won't be returned by mouse WM notifications, so we need to retrieve it manually
7575
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
7676

77-
'Virtual key-codes currently supported by pdInput
78-
Private Const VK_SHIFT As Long = &H10
79-
Private Const VK_CONTROL As Long = &H11
80-
Private Const VK_ALT As Long = &H12 'Note that VK_ALT is referred to as VK_MENU in MSDN documentation!
81-
8277
'In the future, other virtual key codes can be retrieved here:
8378
' http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspx
8479

Classes/pdInputMouse.cls

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,6 @@ Private Declare Function TrackMouseEvent Lib "user32" (ByRef lpEventTrack As TRA
117117
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
118118

119119
'Virtual key-codes currently supported by pdInput
120-
Private Const VK_SHIFT As Long = &H10
121-
Private Const VK_CONTROL As Long = &H11
122-
Private Const VK_ALT As Long = &H12 'Note that VK_ALT is referred to as VK_MENU in MSDN documentation
123-
124120
Private Const VK_LBUTTON As Long = &H1
125121
Private Const VK_RBUTTON As Long = &H2
126122
Private Const VK_MBUTTON As Long = &H4

Controls/pdAccelerator.ctl

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,6 @@ Private m_Hotkeys() As pdHotkey
8585
Private m_NumOfHotkeys As Long
8686
Private Const INITIAL_HOTKEY_LIST_SIZE As Long = 16&
8787

88-
'In some places, virtual key-codes are used to retrieve key states
89-
Private Const VK_SHIFT As Long = &H10
90-
Private Const VK_CONTROL As Long = &H11
91-
Private Const VK_ALT As Long = &H12 'Note that VK_ALT is referred to as VK_MENU in MSDN documentation!
92-
9388
'New solution! Virtual-key tracking is a bad idea, because we want to know key state at the time the hotkey
9489
' was pressed (not what it is right now). Solving this is as easy as tracking key up/down state for Ctrl/Alt/Shift
9590
' presses and storing the results locally - but note that this does require some extra checking for things

Forms/MainWindow.frm

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2768,15 +2768,18 @@ Private Sub HotkeyManager_Accelerator(ByVal acceleratorIndex As Long)
27682768
End If
27692769

27702770
'MRU files
2771-
Dim i As Integer
2771+
Dim i As Integer, targetMRU As Long
27722772
For i = 0 To 9
2773+
27732774
If .HotKeyName(acceleratorIndex) = ("MRU_" & i) Then
2774-
If FormMain.MnuRecDocs.Count > i Then
2775+
2776+
If (FormMain.MnuRecDocs.Count >= i) Then
27752777
If FormMain.MnuRecDocs(i).Enabled Then
27762778
Call FormMain.mnuRecDocs_Click(i)
27772779
Exit Sub
27782780
End If
27792781
End If
2782+
27802783
End If
27812784
Next i
27822785

@@ -2787,18 +2790,21 @@ Private Sub HotkeyManager_Accelerator(ByVal acceleratorIndex As Long)
27872790
'If no images are loaded, exit immediately
27882791
If (Not PDImages.IsImageActive()) Then Exit Sub
27892792

2793+
'Layer > merge down (requires a passed parameter to ID the active layer)
2794+
If .HotKeyName(acceleratorIndex) = "layer_mergedown" Then Process "Merge layer down", False, BuildParamList("layerindex", PDImages.GetActiveImage.GetActiveLayerIndex), UNDO_Image
2795+
27902796
'Fit on screen
2791-
If .HotKeyName(acceleratorIndex) = "FitOnScreen" Then FitOnScreen
2797+
If .HotKeyName(acceleratorIndex) = "FitOnScreen" Then Menus.ProcessDefaultAction_ByName "view_fit"
27922798

27932799
'Zoom in
2794-
If .HotKeyName(acceleratorIndex) = "Zoom_In" Then Call MnuView_Click(3)
2800+
If .HotKeyName(acceleratorIndex) = "Zoom_In" Then Menus.ProcessDefaultAction_ByName "view_zoomin"
27952801

27962802
'Zoom out
2797-
If .HotKeyName(acceleratorIndex) = "Zoom_Out" Then Call MnuView_Click(4)
2803+
If .HotKeyName(acceleratorIndex) = "Zoom_Out" Then Menus.ProcessDefaultAction_ByName "view_zoomout"
27982804

27992805
'Actual size
28002806
If .HotKeyName(acceleratorIndex) = "Actual_Size" Then
2801-
If FormMain.MainCanvas(0).IsZoomEnabled Then FormMain.MainCanvas(0).SetZoomDropDownIndex Zoom.GetZoom100Index
2807+
If FormMain.MainCanvas(0).IsZoomEnabled Then Menus.ProcessDefaultAction_ByName "zoom_actual"
28022808
End If
28032809

28042810
'Various zoom values

Modules/Menus.bas

Lines changed: 35 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Modules/PublicConstants.bas

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ Public Const VK_END As Long = &H23
8787
Public Const VK_HOME As Long = &H24
8888

8989
Public Const VK_OEM_PLUS As Long = 187 'Locale-inspecific + key
90-
'Public Const VK_OEM_MINUS As Long = 189 'Locale-inspecific - key
90+
Public Const VK_OEM_MINUS As Long = 189 'Locale-inspecific - key
9191
Public Const VK_OEM_4 As Long = 219 'For the US standard keyboard, the '[{' key. (Varies internationally.)
9292
Public Const VK_OEM_6 As Long = 221 'For the US standard keyboard, the ']}' key. (Varies internationally.)
9393

PhotoDemon.vbp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,7 @@ Form=Forms\Effects_Distort_Waves.frm
334334
Form=Forms\Effects_Edge_Emboss.frm
335335
Form=Forms\Effects_Edge_EnhanceEdges.frm
336336
Form=Forms\Effects_Edge_FindEdges.frm
337+
Form=Forms\Effects_Edge_GradientFlow.frm
337338
Form=Forms\Effects_Edge_Range.frm
338339
Form=Forms\Effects_Edge_TraceContour.frm
339340
Form=Forms\Effects_LightAndShadow_BlackLight.frm
@@ -445,7 +446,6 @@ Form=Forms\Tools_ScreenVideo.frm
445446
Form=Forms\Tools_ScreenVideoPrefs.frm
446447
Form=Forms\Tools_ThemeEditor.frm
447448
ResFile32="Resources\PD_icons.RES"
448-
Form=Forms\Effects_Edge_GradientFlow.frm
449449
IconForm="FormMain"
450450
Startup="Sub Main"
451451
HelpFile=""
@@ -459,7 +459,7 @@ Description="PhotoDemon Photo Editor"
459459
CompatibleMode="0"
460460
MajorVer=8
461461
MinorVer=9
462-
RevisionVer=76
462+
RevisionVer=85
463463
AutoIncrementVer=1
464464
ServerSupportFiles=0
465465
VersionComments="Copyright 2000-2020 Tanner Helland - photodemon.org"

0 commit comments

Comments
 (0)