*** Org\JvListView.pas	Fri Sep 15 01:06:06 2006
--- JvListView.pas	Sun Sep 17 19:32:40 2006
***************
*** 68,74 ****
  
    //  TJvSortMethod = (smAutomatic, smAlphabetic, smNonCaseSensitive, smNumeric, smDate, smTime, smDateTime, smCurrency);
    TJvOnProgress = procedure(Sender: TObject; Progression, Total: Integer) of object;
!   TJvListViewCompareGroupEvent = procedure(Sender: TObject; Group1, Group2: TJvListViewGroup; var Compare: Integer) of object; 
  
    TJvListItems = class(TListItems, IJvAppStorageHandler, IJvAppStoragePublishedProps)
    private
--- 68,74 ----
  
    //  TJvSortMethod = (smAutomatic, smAlphabetic, smNonCaseSensitive, smNumeric, smDate, smTime, smDateTime, smCurrency);
    TJvOnProgress = procedure(Sender: TObject; Progression, Total: Integer) of object;
!   TJvListViewCompareGroupEvent = procedure(Sender: TObject; Group1, Group2: TJvListViewGroup; var Compare: Integer) of object;
  
    TJvListItems = class(TListItems, IJvAppStorageHandler, IJvAppStoragePublishedProps)
    private
***************
*** 377,382 ****
--- 377,383 ----
      procedure WMNCCalcSize(var Msg: TWMNCCalcSize); message WM_NCCALCSIZE;
      procedure LVMDeleteColumn(var Msg: TMessage); message LVM_DELETECOLUMN;
      procedure LVMInsertColumn(var Msg: TMessage); message LVM_INSERTCOLUMN;
+     procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY;
  
      procedure InsertItem(Item: TListItem); override;
      function IsCustomDrawn(Target: TCustomDrawTarget; Stage: TCustomDrawStage): Boolean; {$IFDEF COMPILER6_UP} override; {$ENDIF}
***************
*** 466,472 ****
    UnitVersioning: TUnitVersionInfo = (
      RCSfile: '$URL: https://svn.sourceforge.net:443/svnroot/jvcl/trunk/jvcl/run/JvListView.pas $';
      Revision: '$Revision: 10925 $';
!     Date: '$Date: 2006-09-01 17:49:37 +0900 (金, 01 9 2006) $';
      LogPath: 'JVCL\run'
      );
  {$ENDIF UNITVERSIONING}
--- 467,473 ----
    UnitVersioning: TUnitVersionInfo = (
      RCSfile: '$URL: https://svn.sourceforge.net:443/svnroot/jvcl/trunk/jvcl/run/JvListView.pas $';
      Revision: '$Revision: 10925 $';
!     Date: '$Date: 2006-09-01 17:49:37 +0900 (釁E 01 9 2006) $';
      LogPath: 'JVCL\run'
      );
  {$ENDIF UNITVERSIONING}
***************
*** 957,962 ****
--- 958,986 ----
      FOnVerticalScroll(Self);
  end;
  
+ procedure TJvListView.CNNotify(var Message: TWMNotify);
+ begin
+ 
+   with Message do
+     if NMHdr^.code = NM_CUSTOMDRAW then
+     begin
+       with PNMCustomDraw(NMHdr)^ do
+       begin
+        if (dwDrawStage and CDDS_SUBITEM <> 0) and
+           (PNMLVCustomDraw(NMHdr)^.iSubItem = 0) then
+        begin
+          PNMLVCustomDraw(NMHdr)^.iSubItem := -1;
+          inherited;
+          PNMLVCustomDraw(NMHdr)^.iSubItem := 0;
+          Exit;
+        end;
+       end;
+     end;
+ 
+  inherited;
+ 
+ end;
+ 
  procedure TJvListView.ColClick(Column: TListColumn);
  type
    TParamSort = record
***************
*** 2099,2104 ****
--- 2123,2133 ----
  function TJvListView.CustomDrawSubItem(Item: TListItem; SubItem: Integer;
    State: TCustomDrawState; Stage: TCustomDrawStage): Boolean;
  begin
+   // Even if TListView and difference SubItem are 0,
+   // CustomDrawSubItem is generated.
+   if SubItem = -1 then
+     SubItem := 0;
+ 
    if (Stage = cdPrePaint) and Assigned(Item) then
    begin
      Canvas.Font := TJvListItem(Item).Font;
