keep dial within viewport while dragging