This question already has an answer here:
I am travelling from US to Bangalore (INDIA) via Canada, in Canada I have to change the flight from Air Canada to Ethihad airways and have layover time of 3 hours. I'm an Indian citizen. Do I need a Canada transit visa? I don't want to visit Canada.