diff --git a/release/datafiles/userdef/userdef_default_theme.c b/release/datafiles/userdef/userdef_default_theme.c index 19e9ab723fc..fed87c5018a 100644 --- a/release/datafiles/userdef/userdef_default_theme.c +++ b/release/datafiles/userdef/userdef_default_theme.c @@ -245,6 +245,7 @@ const bTheme U_theme_default = { .icon_shading = RGBA(0xcc6670ff), .icon_folder = RGBA(0xccad63ff), .panel_roundness = 0.4f, + .popup_panel_sub_back = RGBA(0x41403D1E), }, .space_properties = { .back = RGBA(0x30303000), diff --git a/scripts/startup/bl_ui/space_userpref.py b/scripts/startup/bl_ui/space_userpref.py index a33892ace51..1a3f98bd4d0 100644 --- a/scripts/startup/bl_ui/space_userpref.py +++ b/scripts/startup/bl_ui/space_userpref.py @@ -1010,6 +1010,7 @@ class USERPREF_PT_theme_interface_styles(ThemePanel, CenterAlignMixIn, Panel): col.prop(ui, "editor_outline") col.prop(ui, "widget_emboss") col.prop(ui, "panel_roundness") + col.prop(ui, "popup_panel_sub_back") class USERPREF_PT_theme_interface_transparent_checker(ThemePanel, CenterAlignMixIn, Panel): diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h index 2100ed68660..0d4bdb35ee0 100644 --- a/source/blender/blenkernel/BKE_blender_version.h +++ b/source/blender/blenkernel/BKE_blender_version.h @@ -29,7 +29,7 @@ extern "C" { /* Blender file format version. */ #define BLENDER_FILE_VERSION BLENDER_VERSION -#define BLENDER_FILE_SUBVERSION 12 +#define BLENDER_FILE_SUBVERSION 13 /* Minimum Blender version that supports reading file written with the current * version. Older Blender versions will test this and cancel loading the file, showing a warning to diff --git a/source/blender/blenloader/intern/versioning_userdef.cc b/source/blender/blenloader/intern/versioning_userdef.cc index 63d2a158083..1a3528fe8c7 100644 --- a/source/blender/blenloader/intern/versioning_userdef.cc +++ b/source/blender/blenloader/intern/versioning_userdef.cc @@ -140,6 +140,10 @@ static void do_versions_theme(const UserDef *userdef, bTheme *btheme) FROM_DEFAULT_V4_UCHAR(space_view3d.face_mode_select); } + if (!USER_VERSION_ATLEAST(402, 13)) { + FROM_DEFAULT_V4_UCHAR(tui.popup_panel_sub_back); + } + /** * Always bump subversion in BKE_blender_version.h when adding versioning * code here, and wrap it inside a USER_VERSION_ATLEAST check. diff --git a/source/blender/editors/include/UI_resources.hh b/source/blender/editors/include/UI_resources.hh index 437533e444e..9faee70f0e1 100644 --- a/source/blender/editors/include/UI_resources.hh +++ b/source/blender/editors/include/UI_resources.hh @@ -354,6 +354,8 @@ enum ThemeColorID { TH_EDGE_BEVEL, TH_VERTEX_BEVEL, + + TH_POPUP_PANEL_SUB_BACK, }; /* Specific defines per space should have higher define values. */ diff --git a/source/blender/editors/interface/interface.cc b/source/blender/editors/interface/interface.cc index 853cf97ed81..e5347500294 100644 --- a/source/blender/editors/interface/interface.cc +++ b/source/blender/editors/interface/interface.cc @@ -2098,8 +2098,9 @@ void UI_block_draw(const bContext *C, uiBlock *block) } /* Shared layout panel backdrop style between redo region and popups. */ if (block->panel && ELEM(region->regiontype, RGN_TYPE_HUD, RGN_TYPE_TEMPORARY)) { - /* TODO: Add as theme color. */ - float subpanel_backcolor[4]{0.2f, 0.3f, 0.33f, 0.05f}; + float subpanel_backcolor[4]; + UI_GetThemeColor4fv(TH_POPUP_PANEL_SUB_BACK, subpanel_backcolor); + const bTheme *btheme = UI_GetTheme(); const float aspect = block->panel->runtime->block->aspect; const float radius = btheme->tui.panel_roundness * U.widget_unit * 0.5f / aspect; diff --git a/source/blender/editors/interface/resources.cc b/source/blender/editors/interface/resources.cc index 390eff0c935..65d58b97cd3 100644 --- a/source/blender/editors/interface/resources.cc +++ b/source/blender/editors/interface/resources.cc @@ -1057,6 +1057,8 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid) case TH_V3D_CLIPPING_BORDER: cp = ts->clipping_border_3d; break; + case TH_POPUP_PANEL_SUB_BACK: + cp = btheme->tui.popup_panel_sub_back; } } } diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index f40444f8ff9..5639d89cc97 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -206,7 +206,7 @@ typedef struct ThemeUI { * icons. */ float icon_border_intensity; float panel_roundness; - char _pad2[4]; + unsigned char popup_panel_sub_back[4]; } ThemeUI; diff --git a/source/blender/makesrna/intern/rna_userdef.cc b/source/blender/makesrna/intern/rna_userdef.cc index 7149b31be0f..079bf7bd221 100644 --- a/source/blender/makesrna/intern/rna_userdef.cc +++ b/source/blender/makesrna/intern/rna_userdef.cc @@ -1940,6 +1940,14 @@ static void rna_def_userdef_theme_ui(BlenderRNA *brna) prop, "Icon Border", "Control the intensity of the border around themes icons"); RNA_def_property_ui_range(prop, 0.0, 1.0, 0.1, 2); RNA_def_property_update(prop, 0, "rna_userdef_theme_update_icons"); + + prop = RNA_def_property(srna, "popup_panel_sub_back", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_float_sdna(prop, nullptr, "popup_panel_sub_back"); + RNA_def_property_array(prop, 4); + RNA_def_property_ui_text(prop, + "Popup layout panel sub background", + "Color of layout panels sub background in popups"); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); } static void rna_def_userdef_theme_space_common(StructRNA *srna)