From df4f9d077894c230ae6d158a5fefc367b6140932 Mon Sep 17 00:00:00 2001 From: Anish Kumar Date: Fri, 5 Dec 2025 01:46:45 +0530 Subject: [PATCH] Increase PopupMenu vertical separation to improve touch usability --- doc/classes/EditorSettings.xml | 2 +- editor/editor_node.cpp | 1 - editor/themes/theme_classic.cpp | 3 ++- editor/themes/theme_modern.cpp | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/doc/classes/EditorSettings.xml b/doc/classes/EditorSettings.xml index 068dc9bcac0..432f8b2b4c7 100644 --- a/doc/classes/EditorSettings.xml +++ b/doc/classes/EditorSettings.xml @@ -1239,7 +1239,7 @@ [b]Note:[/b] Defaults to [code]true[/code] on touchscreen devices. - 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. diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index d1013be20ae..c5c9c6e0670 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -7764,7 +7764,6 @@ void EditorNode::_update_main_menu_type() { #ifdef ANDROID_ENABLED // 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->set_custom_minimum_size(Vector2(8, 0) * EDSCALE); title_bar->add_child(menu_btn_spacer); diff --git a/editor/themes/theme_classic.cpp b/editor/themes/theme_classic.cpp index 5cb6cb85b9c..e570bfc5a6c 100644 --- a/editor/themes/theme_classic.cpp +++ b/editor/themes/theme_classic.cpp @@ -1107,7 +1107,8 @@ void ThemeClassic::populate_standard_styles(const Ref &p_theme, Edi 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_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("item_start_padding", "PopupMenu", p_config.separation_margin); p_theme->set_constant("item_end_padding", "PopupMenu", p_config.separation_margin); diff --git a/editor/themes/theme_modern.cpp b/editor/themes/theme_modern.cpp index 2613828200d..9a64725fee9 100644 --- a/editor/themes/theme_modern.cpp +++ b/editor/themes/theme_modern.cpp @@ -1046,7 +1046,8 @@ void ThemeModern::populate_standard_styles(const Ref &p_theme, Edit 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("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("item_start_padding", "PopupMenu", p_config.popup_margin); p_theme->set_constant("item_end_padding", "PopupMenu", p_config.popup_margin);