From fa5e89719bb5f1ac242b2a04b6be55a2e10b245a Mon Sep 17 00:00:00 2001 From: n7800 <14154601-n7800@users.noreply.gitlab.com> Date: Tue, 3 Dec 2024 05:41:59 +0500 Subject: [PATCH] IDE/MessagesWnd: Check modifier key presses in the KeyDown method --- ide/etmessageframe.pas | 94 ++++++++++++++++++++++-------------------- 1 file changed, 50 insertions(+), 44 deletions(-) diff --git a/ide/etmessageframe.pas b/ide/etmessageframe.pas index 909849933c..9952be9fb0 100644 --- a/ide/etmessageframe.pas +++ b/ide/etmessageframe.pas @@ -1824,56 +1824,59 @@ end; procedure TMessagesCtrl.KeyDown(var Key: Word; Shift: TShiftState); begin - inherited KeyDown(Key, Shift); + if (Key = VK_RETURN) and (Shift = []) then + begin + OpenSelection; + Key := 0; + end - case Key of - VK_RETURN: - begin - OpenSelection; - Key := VK_UNKNOWN; - end; + else if (Key = VK_DOWN) and (Shift = []) then + begin + SelectNextShown(+1); + Key := 0; + end + else if (Key = VK_UP) and (Shift = []) then + begin + SelectNextShown(-1); + Key := 0; + end - VK_DOWN: - begin - SelectNextShown(+1); - Key:=VK_UNKNOWN; - end; + else if (Key = VK_HOME) and (Shift = []) then + begin + SelectFirst(true, true); + Key := 0; + end + else if (Key = VK_END) and (Shift = []) then + begin + SelectLast(true, true); + Key := 0; + end - VK_UP: - begin - SelectNextShown(-1); - Key:=VK_UNKNOWN; - end; + // [PageDown] + else if (Key = VK_NEXT) and (Shift = []) then + begin + SelectNextShown(+Max(1, ClientHeight div ItemHeight)); + Key := 0; + end + // [PageUp] + else if (Key = VK_PRIOR) and (Shift = []) then + begin + SelectNextShown(-Max(1, ClientHeight div ItemHeight)); + Key := 0; + end - VK_HOME: + // [Ctrl+C] - copy HintData to clipboard + else if (Key = VK_C) and (Shift = [ssCtrl]) then + begin + if assigned(FHintLastView) then begin - SelectFirst(true,true); - Key:=VK_UNKNOWN; - end; - - VK_END: - begin - SelectLast(true,true); - Key:=VK_UNKNOWN; - end; - - VK_PRIOR: // Page Up - begin - SelectNextShown(-Max(1,ClientHeight div ItemHeight)); - Key:=VK_UNKNOWN; - end; - - VK_NEXT: // Page Down - begin - SelectNextShown(Max(1,ClientHeight div ItemHeight)); - Key:=VK_UNKNOWN; - end; - VK_C: // Ctrl+'C' -> copy HintData to clipboard - if (Shift = [ssCtrl]) and Assigned(FHintLastView) then begin - ClipBoard.AsText := FHintLastView.AsHintString(Self.FHintLastLine); - Key := VK_UNKNOWN; + Clipboard.AsText := FHintLastView.AsHintString(self.FHintLastLine); + Key := 0; end; end; + + if Key <> 0 then + inherited KeyDown(Key, Shift); end; procedure TMessagesCtrl.DoAllViewsStopped; @@ -3156,8 +3159,11 @@ end; procedure TMessagesFrame.SearchEditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin - if (Key=VK_ESCAPE) then + if (Key = VK_ESCAPE) and (Shift = []) then + begin HideSearch; + Key := 0; + end; end; procedure TMessagesFrame.SearchNextSpeedButtonClick(Sender: TObject);