diff --git a/source/blender/editors/interface/interface_layout.cc b/source/blender/editors/interface/interface_layout.cc index 96d3e597f2f..d1ea42db085 100644 --- a/source/blender/editors/interface/interface_layout.cc +++ b/source/blender/editors/interface/interface_layout.cc @@ -2100,6 +2100,10 @@ void uiLayout::prop(PointerRNA *ptr, uiLayout *layout_sub = &layout_split->column(true); layout_sub->space_ = 0; + if (!RNA_property_editable(ptr, prop)) { + layout_split->enabled_set(false); + } + if (!use_prop_sep_split_label) { /* Pass */ } diff --git a/source/blender/editors/space_view3d/view3d_buttons.cc b/source/blender/editors/space_view3d/view3d_buttons.cc index 640020fcd1c..bc48f75d32f 100644 --- a/source/blender/editors/space_view3d/view3d_buttons.cc +++ b/source/blender/editors/space_view3d/view3d_buttons.cc @@ -1594,7 +1594,8 @@ static void v3d_editvertex_buts( static void v3d_object_dimension_buts(bContext *C, uiLayout *layout, View3D *v3d, Object *ob) { - uiBlock *block = (layout) ? layout->absolute_block() : nullptr; + uiBlock *block = (layout) ? layout->block() : nullptr; + uiLayout &sub_layout = layout->absolute(false); TransformProperties *tfp = v3d_transform_props_ensure(v3d); const bool is_editable = ID_IS_EDITABLE(&ob->id); @@ -1609,6 +1610,10 @@ static void v3d_object_dimension_buts(bContext *C, uiLayout *layout, View3D *v3d copy_v3_v3(tfp->ob_scale_orig, ob->scale); copy_m4_m4(tfp->ob_obmat_orig, ob->object_to_world().ptr()); + if (!is_editable) { + sub_layout.enabled_set(false); + } + uiDefBut(block, ButType::Label, 0,