handle shift and ctrl modifiers