Prefer VirtualTree's OnNodeDblClick over OnDblClick, to detect whether the user really clicked on a session node, or somewhere else. Closes #820

This commit is contained in:
Ansgar Becker
2020-02-05 17:34:23 +01:00
parent b333de2913
commit 0254345ff3
2 changed files with 21 additions and 1 deletions

View File

@ -877,7 +877,6 @@ object connform: Tconnform
TreeOptions.PaintOptions = [toHotTrack, toShowButtons, toShowDropmark, toShowRoot, toShowTreeLines, toThemeAware, toUseBlendedImages, toUseExplorerTheme, toHideTreeLinesIfThemed]
TreeOptions.SelectionOptions = [toFullRowSelect, toRightClickSelect]
OnCreateEditor = ListSessionsCreateEditor
OnDblClick = btnOpenClick
OnDragOver = ListSessionsDragOver
OnDragDrop = ListSessionsDragDrop
OnFocusChanged = ListSessionsFocusChanged
@ -886,6 +885,7 @@ object connform: Tconnform
OnGetImageIndex = ListSessionsGetImageIndex
OnGetNodeDataSize = ListSessionsGetNodeDataSize
OnNewText = ListSessionsNewText
OnNodeDblClick = ListSessionsNodeDblClick
OnStructureChange = ListSessionsStructureChange
Columns = <
item

View File

@ -177,6 +177,8 @@ type
procedure editSearchChange(Sender: TObject);
procedure editSearchRightButtonClick(Sender: TObject);
procedure editHostDblClick(Sender: TObject);
procedure ListSessionsNodeDblClick(Sender: TBaseVirtualTree;
const HitInfo: THitInfo);
private
{ Private declarations }
FLoaded: Boolean;
@ -1003,6 +1005,24 @@ begin
end;
procedure Tconnform.ListSessionsNodeDblClick(Sender: TBaseVirtualTree;
const HitInfo: THitInfo);
const
AllowedPos: THitPositions=[hiOnItemLabel, hiOnItemLeft, hiOnItemRight, hiOnNormalIcon];
var
HitPos: THitPosition;
begin
// Doubleclick to open a connection, only if mouse is really on a node,
// not e.g. on the expand/collapse icon (see issue #820)
for HitPos in HitInfo.HitPositions do begin
if HitPos in AllowedPos then begin
btnOpen.OnClick(Sender);
Break;
end;
end;
end;
procedure Tconnform.ListSessionsStructureChange(Sender: TBaseVirtualTree;
Node: PVirtualNode; Reason: TChangeReason);
begin