You are definitely going to have to listen to click events with JavaScript, and filter out only clicks with the right mouse button. CGridView can’t do what you want out of the box.
Here is a post explaining how to make the whole row clickable with JS:
So I have tried this and it gets the right primary key when i put the event.keyCode == 0. But when I changed it to event.keyCode == 2 for the right click it just brings up the regular context menu.