add window snapping
start implementing viewport_interaction_get_item_left