I would suggest alway passing the value of ctrl/shift/meta as 3 parameters.
or, 3 different explicit function for each case don't seem too much for me, and call them in the right place.