updated viewnode to handle shift/meta keys