bool DropDownMenu::handle_mouse_up(DispPoint coord) {

    if (!clicked) {
        return false;
    }
    
    clicked = false;

    // Find clicked row
    int row_size = text_size + vertical_padding*2;
    selected_entry_idx = coord.y / row_size;    
    
    // order matters incase entries is empty to avoid -1
    if (selected_entry_idx >= entries.size())
        { selected_entry_idx = entries.size()-1; }
    if (selected_entry_idx <= 0)
        { selected_entry_idx = 0; }
    
    update_menu_view();
    resize(get_w(), row_size);
    
    int vert_adj = -selected_entry_idx * row_size; // (move subview up)
    move_subview(menu, DispPoint(0, vert_adj)); // move correct entry to visible
    get_parent()->move_subview(this, pre_click_pos);

    lose_focus();
    
    return true;
}
bool ScrollView::ScrollBar::handle_mouse_up(VGPoint coord) {
    
    clicked = false;
    click = coord;
    view->scrolling = false;
    lose_focus();
    
    return true;
}