diff --git a/ide/frames/editor_color_options.lfm b/ide/frames/editor_color_options.lfm index 2dcaefc414..76f4459e3a 100644 --- a/ide/frames/editor_color_options.lfm +++ b/ide/frames/editor_color_options.lfm @@ -102,6 +102,7 @@ inherited EditorColorOptionsFrame: TEditorColorOptionsFrame OnAdvancedCustomDrawItem = ColorElementTreeAdvancedCustomDrawItem OnChange = ColorElementTreeChange OnClick = ColorElementTreeClick + OnKeyDown = ColorElementTreeKeyDown Options = [tvoAutoExpand, tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowLines, tvoToolTips, tvoNoDoubleClickExpand, tvoThemedDraw] end object chkSchemeDefaults: TCheckBox diff --git a/ide/frames/editor_color_options.pas b/ide/frames/editor_color_options.pas index 5a28e7efec..213bb43f18 100644 --- a/ide/frames/editor_color_options.pas +++ b/ide/frames/editor_color_options.pas @@ -83,6 +83,7 @@ type State: TCustomDrawState; Stage: TCustomDrawStage; var PaintImages, DefaultDraw: Boolean); procedure ColorElementTreeChange(Sender: TObject; Node: TTreeNode); procedure ColorElementTreeClick(Sender: TObject); + procedure ColorElementTreeKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure ColorPreviewMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ForegroundColorBoxChange(Sender: TObject); @@ -338,6 +339,23 @@ begin FindCurHighlightElement; end; +procedure TEditorColorOptionsFrame.ColorElementTreeKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +var + lnode: TTreeNode; +begin + lnode := ColorElementTree.Selected; + if (Key = VK_UP) and (lnode <> nil) then begin + lnode := lnode.GetPrevExpanded; + if (lnode <> nil) and (lnode.GetFirstChild <> nil) then + lnode := lnode.GetPrevExpanded; + if (lnode <> nil) then begin + Key :=VK_UNKNOWN; + ColorElementTree.Selected := lnode; + end; + end; +end; + procedure TEditorColorOptionsFrame.ColorPreviewMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var