anchor.diff:    Item: TfpgLVItem;
     IndexOfItem: Integer;
     cRect: TfpgRect;
  -  cLeft, cRight: Integer;
  +  curLeft, curRight: Integer;
     I: Integer;
     Column: TfpgLVColumn;
  +  LastColumn: TfpgLVColumn;
  +  HeaderX: Integer;
   begin
     inherited HandleLMouseDown(x, y, shiftstate);
     
  
positive.code:   begin
      if (Y < HeaderHeight + cRect.Top)  then
      begin
        cLeft := cRect.Left - FHScrollBar.Position;
        for I := 0 to FColumns.Count-1 do
        begin
          Column := FColumns.Column[I];
          if Column.Visible then
          begin
            cRight := cLeft + Column.Width-1;
            if (X <= cRight) and (X >= cLeft) then
            begin
              if (MouseCursor = mcSizeEW) and Column.Resizable then
                FResizingColumn := Column
              else // only perform a mouse click if we aren't resizing
                DoColumnClick(Column, 1);
            end;
            Inc(cLeft, Column.Width);
          end;
        end;
      end;
      Inc(cRect.Top, HeaderHeight);
    end;
    
  
negative.code:   Shiftstate: TShiftState);
  var
    I: Integer;
    curLeft: Integer;
    curRight: Integer;
    Column: TfpgLVColumn;
    LastColumn: TfpgLVColumn;
    HeaderX: Integer; // this is X from the headers point of view
    NewMouseCursor: TMouseCursor;
  begin
    curLeft := 0;
  
    HeaderX := FHScrollBar.Position - 2 + X;
    NewMouseCursor := MouseCursor;
    LastColumn := nil;
    for I := 0 to FColumns.Count-1 do
    begin
      Column := FColumns.Column[I];
      if not Column.Visible then
        Continue;
      curRight := curLeft + Column.Width-1;
      if Column.Resizable or (Assigned(LastColumn) and LastColumn.Resizable) then
      begin
        if (FResizingColumn <> nil) and (FResizingColumn = Column) then
        begin
          FResizingColumn.Width :=  (x + FHScrollBar.Position)- curLeft;
          DoRepaint;
          Break;
        end
        else begin
          if (HeaderX >= curLeft) and (HeaderX <= curRight) then // we are within this columns space
          begin
            if ((LastColumn <> nil) and (LastColumn.Resizable) and (HeaderX - curLeft < 5))
            or (Column.Resizable) and (curRight - HeaderX < 5)
            then
            begin
              NewMouseCursor := mcSizeEW;
              Break;
            end;
          end
          else
            NewMouseCursor := mcDefault;
        end;
      end;
      LastColumn := Column;
      Inc(curLeft, Column.Width);
    end;
    if not Assigned(FResizingColumn) and Assigned(LastColumn) and LastColumn.Resizable then
      if (HeaderX - curLeft) < 5 then
        NewMouseCursor := mcSizeEW;
        
    if FResizingColumn <> nil then
      NewMouseCursor := mcSizeEW;
    
    if NewMouseCursor <> MouseCursor then
      MouseCursor := NewMouseCursor;
  
  end;
  
  procedure TfpgListView.HandleMouseScroll(x, y: integer;
  