From 922a3c2566440cf4d2bf5a1ada39cc5b4b40d234 Mon Sep 17 00:00:00 2001 From: passivestar <60579014+passivestar@users.noreply.github.com> Date: Mon, 12 Jan 2026 07:59:21 +0400 Subject: [PATCH] Don't tint menu button icons in context toolbar --- editor/scene/2d/camera_2d_editor_plugin.cpp | 2 ++ editor/scene/2d/skeleton_2d_editor_plugin.cpp | 2 +- editor/scene/2d/sprite_2d_editor_plugin.cpp | 2 +- editor/scene/3d/mesh_instance_3d_editor_plugin.cpp | 2 +- editor/scene/3d/mesh_library_editor_plugin.cpp | 2 +- editor/scene/3d/multimesh_editor_plugin.cpp | 2 +- editor/scene/3d/skeleton_3d_editor_plugin.cpp | 2 +- editor/scene/particles_editor_plugin.cpp | 2 +- editor/themes/theme_classic.cpp | 5 +++++ editor/themes/theme_modern.cpp | 5 +++++ 10 files changed, 19 insertions(+), 7 deletions(-) diff --git a/editor/scene/2d/camera_2d_editor_plugin.cpp b/editor/scene/2d/camera_2d_editor_plugin.cpp index 7d7a23b4ee..55158c44ca 100644 --- a/editor/scene/2d/camera_2d_editor_plugin.cpp +++ b/editor/scene/2d/camera_2d_editor_plugin.cpp @@ -304,6 +304,8 @@ Camera2DEditor::Camera2DEditor(EditorPlugin *p_plugin) { options = memnew(MenuButton); options->set_text(TTRC("Camera2D")); + options->set_flat(false); + options->set_theme_type_variation("FlatMenuButtonNoIconTint"); options->get_popup()->add_item(TTRC("Snap the Limits to the Viewport"), MENU_SNAP_LIMITS_TO_VIEWPORT); options->set_switch_on_hover(true); options->hide(); diff --git a/editor/scene/2d/skeleton_2d_editor_plugin.cpp b/editor/scene/2d/skeleton_2d_editor_plugin.cpp index fd61c5bca6..10f6621f4b 100644 --- a/editor/scene/2d/skeleton_2d_editor_plugin.cpp +++ b/editor/scene/2d/skeleton_2d_editor_plugin.cpp @@ -97,7 +97,7 @@ Skeleton2DEditor::Skeleton2DEditor() { options->set_text(TTR("Skeleton2D")); options->set_button_icon(EditorNode::get_singleton()->get_editor_theme()->get_icon(SNAME("Skeleton2D"), EditorStringName(EditorIcons))); options->set_flat(false); - options->set_theme_type_variation("FlatMenuButton"); + options->set_theme_type_variation("FlatMenuButtonNoIconTint"); options->get_popup()->add_item(TTR("Reset to Rest Pose"), MENU_OPTION_SET_REST); options->get_popup()->add_separator(); diff --git a/editor/scene/2d/sprite_2d_editor_plugin.cpp b/editor/scene/2d/sprite_2d_editor_plugin.cpp index 8a37d42175..3c77d83d61 100644 --- a/editor/scene/2d/sprite_2d_editor_plugin.cpp +++ b/editor/scene/2d/sprite_2d_editor_plugin.cpp @@ -624,7 +624,7 @@ Sprite2DEditor::Sprite2DEditor() { options->set_text(TTR("Sprite2D")); options->set_flat(false); - options->set_theme_type_variation("FlatMenuButton"); + options->set_theme_type_variation("FlatMenuButtonNoIconTint"); options->get_popup()->add_item(TTR("Convert to MeshInstance2D"), MENU_OPTION_CONVERT_TO_MESH_2D); options->get_popup()->add_item(TTR("Convert to Polygon2D"), MENU_OPTION_CONVERT_TO_POLYGON_2D); diff --git a/editor/scene/3d/mesh_instance_3d_editor_plugin.cpp b/editor/scene/3d/mesh_instance_3d_editor_plugin.cpp index 9adabd72f2..4a5374c322 100644 --- a/editor/scene/3d/mesh_instance_3d_editor_plugin.cpp +++ b/editor/scene/3d/mesh_instance_3d_editor_plugin.cpp @@ -798,7 +798,7 @@ MeshInstance3DEditor::MeshInstance3DEditor() { options->set_text(TTR("Mesh")); options->set_switch_on_hover(true); options->set_flat(false); - options->set_theme_type_variation("FlatMenuButton"); + options->set_theme_type_variation("FlatMenuButtonNoIconTint"); Node3DEditor::get_singleton()->add_control_to_menu_panel(options); options->get_popup()->add_item(TTR("Create Collision Shape..."), MENU_OPTION_CREATE_COLLISION_SHAPE); diff --git a/editor/scene/3d/mesh_library_editor_plugin.cpp b/editor/scene/3d/mesh_library_editor_plugin.cpp index 12aa704da6..c5fd51c456 100644 --- a/editor/scene/3d/mesh_library_editor_plugin.cpp +++ b/editor/scene/3d/mesh_library_editor_plugin.cpp @@ -279,7 +279,7 @@ MeshLibraryEditor::MeshLibraryEditor() { menu->set_text(TTR("MeshLibrary")); menu->set_button_icon(EditorNode::get_singleton()->get_editor_theme()->get_icon(SNAME("MeshLibrary"), EditorStringName(EditorIcons))); menu->set_flat(false); - menu->set_theme_type_variation("FlatMenuButton"); + menu->set_theme_type_variation("FlatMenuButtonNoIconTint"); menu->get_popup()->add_item(TTR("Add Item"), MENU_OPTION_ADD_ITEM); menu->get_popup()->add_item(TTR("Remove Selected Item"), MENU_OPTION_REMOVE_ITEM); menu->get_popup()->add_separator(); diff --git a/editor/scene/3d/multimesh_editor_plugin.cpp b/editor/scene/3d/multimesh_editor_plugin.cpp index 9c3e6a1380..3c74db3539 100644 --- a/editor/scene/3d/multimesh_editor_plugin.cpp +++ b/editor/scene/3d/multimesh_editor_plugin.cpp @@ -274,7 +274,7 @@ MultiMeshEditor::MultiMeshEditor() { options->set_text("MultiMesh"); options->set_button_icon(EditorNode::get_singleton()->get_editor_theme()->get_icon(SNAME("MultiMeshInstance3D"), EditorStringName(EditorIcons))); options->set_flat(false); - options->set_theme_type_variation("FlatMenuButton"); + options->set_theme_type_variation("FlatMenuButtonNoIconTint"); options->get_popup()->add_item(TTR("Populate Surface")); options->get_popup()->connect(SceneStringName(id_pressed), callable_mp(this, &MultiMeshEditor::_menu_option)); diff --git a/editor/scene/3d/skeleton_3d_editor_plugin.cpp b/editor/scene/3d/skeleton_3d_editor_plugin.cpp index db910f041a..c5769af87d 100644 --- a/editor/scene/3d/skeleton_3d_editor_plugin.cpp +++ b/editor/scene/3d/skeleton_3d_editor_plugin.cpp @@ -1042,7 +1042,7 @@ void Skeleton3DEditor::create_editors() { // Create Skeleton Option in Top Menu Bar. skeleton_options = memnew(MenuButton); skeleton_options->set_flat(false); - skeleton_options->set_theme_type_variation("FlatMenuButton"); + skeleton_options->set_theme_type_variation("FlatMenuButtonNoIconTint"); topmenu_bar->add_child(skeleton_options); skeleton_options->set_text(TTR("Skeleton3D")); diff --git a/editor/scene/particles_editor_plugin.cpp b/editor/scene/particles_editor_plugin.cpp index f48a5bf6a7..b2815b0072 100644 --- a/editor/scene/particles_editor_plugin.cpp +++ b/editor/scene/particles_editor_plugin.cpp @@ -108,7 +108,7 @@ ParticlesEditorPlugin::ParticlesEditorPlugin() { menu = memnew(MenuButton); menu->set_switch_on_hover(true); menu->set_flat(false); - menu->set_theme_type_variation("FlatMenuButton"); + menu->set_theme_type_variation("FlatMenuButtonNoIconTint"); toolbar->add_child(menu); menu->get_popup()->connect(SceneStringName(id_pressed), callable_mp(this, &ParticlesEditorPlugin::_menu_callback)); } diff --git a/editor/themes/theme_classic.cpp b/editor/themes/theme_classic.cpp index d68cf1dc74..e47565fd4e 100644 --- a/editor/themes/theme_classic.cpp +++ b/editor/themes/theme_classic.cpp @@ -1854,6 +1854,11 @@ void ThemeClassic::populate_editor_styles(const Ref &p_theme, Edito p_theme->set_color("icon_hover_color", "FlatButtonNoIconTint", p_config.mono_color); p_theme->set_color("icon_hover_pressed_color", "FlatButtonNoIconTint", p_config.mono_color); + p_theme->set_type_variation("FlatMenuButtonNoIconTint", "FlatMenuButton"); + p_theme->set_color("icon_pressed_color", "FlatMenuButtonNoIconTint", p_config.icon_normal_color); + p_theme->set_color("icon_hover_color", "FlatMenuButtonNoIconTint", p_config.mono_color); + p_theme->set_color("icon_hover_pressed_color", "FlatMenuButtonNoIconTint", p_config.mono_color); + // Variation for Editor Log filter buttons. p_theme->set_type_variation("EditorLogFilterButton", "Button"); // When pressed, don't tint the icons with the accent color, just leave them normal. diff --git a/editor/themes/theme_modern.cpp b/editor/themes/theme_modern.cpp index 5e5afc5029..0ffe032818 100644 --- a/editor/themes/theme_modern.cpp +++ b/editor/themes/theme_modern.cpp @@ -1878,6 +1878,11 @@ void ThemeModern::populate_editor_styles(const Ref &p_theme, Editor p_theme->set_color("icon_hover_color", "FlatButtonNoIconTint", p_config.mono_color); p_theme->set_color("icon_hover_pressed_color", "FlatButtonNoIconTint", p_config.mono_color); + p_theme->set_type_variation("FlatMenuButtonNoIconTint", "FlatMenuButton"); + p_theme->set_color("icon_pressed_color", "FlatMenuButtonNoIconTint", p_config.icon_normal_color); + p_theme->set_color("icon_hover_color", "FlatMenuButtonNoIconTint", p_config.mono_color); + p_theme->set_color("icon_hover_pressed_color", "FlatMenuButtonNoIconTint", p_config.mono_color); + // Variation for Editor Log filter buttons. p_theme->set_type_variation("EditorLogFilterButton", "Button");