Qt: bugfix for #13388

git-svn-id: trunk@19074 -
This commit is contained in:
zeljko 2009-03-23 13:46:28 +00:00
parent 8c2e23e096
commit b84a1a97c5

View File

@ -7860,10 +7860,6 @@ begin
NMLV.hdr.code := LVN_ITEMCHANGING; NMLV.hdr.code := LVN_ITEMCHANGING;
AIndex := QTreeWidget_indexOfTopLevelItem(QTreeWidgetH(Widget), Current); AIndex := QTreeWidget_indexOfTopLevelItem(QTreeWidgetH(Widget), Current);
NMLV.iItem := AIndex;
if NMLV.iItem = -1 then
exit;
AParent := QTreeWidgetItem_parent(Current); AParent := QTreeWidgetItem_parent(Current);
@ -7872,27 +7868,29 @@ begin
else else
ASubIndex := 0; ASubIndex := 0;
NMLV.iItem := AIndex;
NMLV.iSubItem := ASubIndex; NMLV.iSubItem := ASubIndex;
NMLV.uNewState := LVIS_SELECTED; NMLV.uNewState := LVIS_SELECTED;
NMLV.uChanged := LVIF_STATE; NMLV.uChanged := LVIF_STATE;
Msg.NMHdr := @NMLV.hdr; Msg.NMHdr := @NMLV.hdr;
DeliverMessage(Msg);
FSyncingItems := True; FSyncingItems := True;
try try
if Current <> nil then if Current <> nil then
begin begin
DeliverMessage(Msg);
FillChar(Msg, SizeOf(Msg), #0); FillChar(Msg, SizeOf(Msg), #0);
FillChar(NMLV, SizeOf(NMLV), #0); FillChar(NMLV, SizeOf(NMLV), #0);
Msg.Msg := CN_NOTIFY; Msg.Msg := CN_NOTIFY;
NMLV.hdr.hwndfrom := LCLObject.Handle; NMLV.hdr.hwndfrom := LCLObject.Handle;
NMLV.hdr.code := LVN_ITEMCHANGED; NMLV.hdr.code := LVN_ITEMCHANGED;
NMLV.iItem := AIndex; NMLV.iItem := AIndex;
NMLV.iSubItem := ASubIndex; NMLV.iSubItem := ASubIndex;
NMLV.uNewState := LVIS_SELECTED; if QTreeWidget_isItemSelected(QTreeWidgetH(Widget), Current) then
NMLV.uNewState := LVIS_SELECTED
else
NMLV.uOldState := LVIS_SELECTED;
NMLV.uChanged := LVIF_STATE; NMLV.uChanged := LVIF_STATE;
Msg.NMHdr := @NMLV.hdr; Msg.NMHdr := @NMLV.hdr;
DeliverMessage(Msg); DeliverMessage(Msg);
@ -7912,6 +7910,9 @@ begin
else else
ASubIndex := 0; ASubIndex := 0;
NMLV.iSubItem := ASubIndex; NMLV.iSubItem := ASubIndex;
if QTreeWidget_isItemSelected(QTreeWidgetH(Widget), Previous) then
NMLV.uNewState := LVIS_SELECTED
else
NMLV.uOldState := LVIS_SELECTED; NMLV.uOldState := LVIS_SELECTED;
NMLV.uChanged := LVIF_STATE; NMLV.uChanged := LVIF_STATE;
Msg.NMHdr := @NMLV.hdr; Msg.NMHdr := @NMLV.hdr;