### Godot version

4.1.1

### System information

linux

### Issue description

![image](https://github.com/godotengine/godot-proposals/assets/71937306/04dcf0e9-1c0d-4a7f-8ca9-827dd281253a)

![image](https://github.com/godotengine/godot-proposals/assets/71937306/aa70e31e-0486-455a-b8b4-7e589ec7b754)

notice how the first option in the list is never aligned with the button that spawned it.

### Steps to reproduce

right click in the FileSystem dock and hover over the `Create New →` option.

### Minimal reproduction project

editor
}
			}
			items[i].icon->draw_rect(ci, Rect2(icon_pos + icon_offset, icon_size), false, icon_color);
		}
		
		if (!items[i].submenu.is_empty()) {
			if (rtl) {
				submenu->draw(ci, Point2(scroll_width + theme_cache.panel_style->get_margin(SIDE_LEFT) + theme_cache.item_end_padding, item_ofs.y + Math::floor(h - submenu->get_height()) / 2), icon_color);
			} else {
				submenu->draw(ci, Point2(display_width - theme_cache.panel_style->get_margin(SIDE_RIGHT) - submenu->get_width() - theme_cache.item_end_padding, item_ofs.y + Math::floor(h - submenu->get_height()) / 2), icon_color);
			}
		}
		
		if (items[i].separator) {
			if (!text.is_empty()) {
				Vector2 text_pos = Point2(separator_ofs, item_ofs.y + Math::floor((h - items[i].text_buf->get_size().y) / 2.0));
				if (!rtl && !items[i].icon.is_null()) {
					text_pos.x += icon_size.width + theme_cache.h_separation;
				}
				if (theme_cache.font_separator_outline_size > 0 && theme_cache.font_separator_outline_color.a > 0) {
					items[i].text_buf->draw_outline(ci, text_pos, theme_cache.font_separator_outline_size, theme_cache.font_separator_outline_color);
				}
				items[i].text_buf->draw(ci, text_pos, theme_cache.font_separator_color);
			}
		} else {
			item_ofs.x += icon_ofs + check_ofs;
			if (rtl) {
				Vector2 text_pos = Size2(control->get_size().width - items[i].text_buf->get_size().width - item_ofs.x, item_ofs.y) + Point2(0, Math::floor((h - items[i].text_buf->get_size().y) / 2.0));
				if (theme_cache.font_outline_size > 0 && theme_cache.font_outline_color.a > 0) {
					items[i].text_buf->draw_outline(ci, text_pos, theme_cache.font_outline_size, theme_cache.font_outline_color);