finally fixed shift key handling