Merge pull request #113587 from syntaxerror247/popup-menu-seperation

Increase PopupMenu vertical separation to improve touch usability
This commit is contained in:
Rémi Verschelde 2025-12-05 12:56:01 +01:00
commit 204e784bca
No known key found for this signature in database
GPG key ID: C3336907360768E1
4 changed files with 5 additions and 4 deletions

View file

@ -1239,7 +1239,7 @@
[b]Note:[/b] Defaults to [code]true[/code] on touchscreen devices. [b]Note:[/b] Defaults to [code]true[/code] on touchscreen devices.
</member> </member>
<member name="interface/touchscreen/enable_touch_optimizations" type="bool" setter="" getter=""> <member name="interface/touchscreen/enable_touch_optimizations" type="bool" setter="" getter="">
If [code]true[/code], increases the scrollbar touch area and enables a larger dragger for split containers to improve usability on touchscreen devices If [code]true[/code], increases the scrollbar touch area, enables a larger dragger for split containers, and increases PopupMenu vertical separation to improve usability on touchscreen devices.
[b]Note:[/b] Defaults to [code]true[/code] on touchscreen devices. [b]Note:[/b] Defaults to [code]true[/code] on touchscreen devices.
</member> </member>
<member name="interface/touchscreen/scale_gizmo_handles" type="float" setter="" getter=""> <member name="interface/touchscreen/scale_gizmo_handles" type="float" setter="" getter="">

View file

@ -7764,7 +7764,6 @@ void EditorNode::_update_main_menu_type() {
#ifdef ANDROID_ENABLED #ifdef ANDROID_ENABLED
// Align main menu icon visually with TouchActionsPanel buttons. // Align main menu icon visually with TouchActionsPanel buttons.
main_menu_button->get_popup()->add_theme_constant_override("v_separation", 16 * EDSCALE);
menu_btn_spacer = memnew(Control); menu_btn_spacer = memnew(Control);
menu_btn_spacer->set_custom_minimum_size(Vector2(8, 0) * EDSCALE); menu_btn_spacer->set_custom_minimum_size(Vector2(8, 0) * EDSCALE);
title_bar->add_child(menu_btn_spacer); title_bar->add_child(menu_btn_spacer);

View file

@ -1107,7 +1107,8 @@ void ThemeClassic::populate_standard_styles(const Ref<EditorTheme> &p_theme, Edi
p_theme->set_icon("submenu", "PopupMenu", p_theme->get_icon(SNAME("ArrowRight"), EditorStringName(EditorIcons))); p_theme->set_icon("submenu", "PopupMenu", p_theme->get_icon(SNAME("ArrowRight"), EditorStringName(EditorIcons)));
p_theme->set_icon("submenu_mirrored", "PopupMenu", p_theme->get_icon(SNAME("ArrowLeft"), EditorStringName(EditorIcons))); p_theme->set_icon("submenu_mirrored", "PopupMenu", p_theme->get_icon(SNAME("ArrowLeft"), EditorStringName(EditorIcons)));
p_theme->set_constant("v_separation", "PopupMenu", p_config.forced_even_separation * EDSCALE); int v_sep = (p_config.enable_touch_optimizations ? 12 : p_config.forced_even_separation) * EDSCALE;
p_theme->set_constant("v_separation", "PopupMenu", v_sep);
p_theme->set_constant("outline_size", "PopupMenu", 0); p_theme->set_constant("outline_size", "PopupMenu", 0);
p_theme->set_constant("item_start_padding", "PopupMenu", p_config.separation_margin); p_theme->set_constant("item_start_padding", "PopupMenu", p_config.separation_margin);
p_theme->set_constant("item_end_padding", "PopupMenu", p_config.separation_margin); p_theme->set_constant("item_end_padding", "PopupMenu", p_config.separation_margin);

View file

@ -1046,7 +1046,8 @@ void ThemeModern::populate_standard_styles(const Ref<EditorTheme> &p_theme, Edit
p_theme->set_icon("submenu_mirrored", "PopupMenu", p_theme->get_icon(SNAME("ArrowLeft"), EditorStringName(EditorIcons))); p_theme->set_icon("submenu_mirrored", "PopupMenu", p_theme->get_icon(SNAME("ArrowLeft"), EditorStringName(EditorIcons)));
p_theme->set_constant("h_separation", "PopupMenu", p_config.base_margin * 1.75 * EDSCALE); p_theme->set_constant("h_separation", "PopupMenu", p_config.base_margin * 1.75 * EDSCALE);
p_theme->set_constant("v_separation", "PopupMenu", p_config.base_margin * 1.75 * EDSCALE); int v_sep = (p_config.enable_touch_optimizations ? 12 : p_config.base_margin * 1.75) * EDSCALE;
p_theme->set_constant("v_separation", "PopupMenu", v_sep);
p_theme->set_constant("outline_size", "PopupMenu", 0); p_theme->set_constant("outline_size", "PopupMenu", 0);
p_theme->set_constant("item_start_padding", "PopupMenu", p_config.popup_margin); p_theme->set_constant("item_start_padding", "PopupMenu", p_config.popup_margin);
p_theme->set_constant("item_end_padding", "PopupMenu", p_config.popup_margin); p_theme->set_constant("item_end_padding", "PopupMenu", p_config.popup_margin);