void Popup::_fix_size() { #if 0 Point2 pos = get_position(); Size2 size = get_size(); Point2 window_size = window==this ? get_parent_area_size() :window->get_size(); #else Point2 pos = get_global_position(); Size2 size = get_size(); Point2 window_size = get_viewport_rect().size; #endif if (pos.x + size.width > window_size.width) pos.x = window_size.width - size.width; if (pos.x < 0) pos.x = 0; if (pos.y + size.height > window_size.height) pos.y = window_size.height - size.height; if (pos.y < 0) pos.y = 0; #if 0 if (pos!=get_pos()) set_position(pos); #else if (pos != get_position()) set_global_position(pos); #endif }
void Node2D::global_translate(const Vector2 &p_amount) { set_global_position(get_global_position() + p_amount); }