diff --git a/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp b/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp index d9c1450048..bc7b23876c 100644 --- a/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp +++ b/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp @@ -301,7 +301,9 @@ PartitionMapHandle::GetParameterEditor(B_PARAMETER_EDITOR_TYPE type, if (type == B_CREATE_PARAMETER_EDITOR || type == B_PROPERTIES_PARAMETER_EDITOR) { try { - *editor = new PrimaryPartitionEditor(); + BMutablePartition* partition = Partition(); + int32 count = partition->CountChildren(); + *editor = new PrimaryPartitionEditor(count == 0); } catch (std::bad_alloc) { return B_NO_MEMORY; } diff --git a/src/add-ons/disk_systems/intel/PrimaryParameterEditor.cpp b/src/add-ons/disk_systems/intel/PrimaryParameterEditor.cpp index 0d89a9cfbf..b98b76ac02 100644 --- a/src/add-ons/disk_systems/intel/PrimaryParameterEditor.cpp +++ b/src/add-ons/disk_systems/intel/PrimaryParameterEditor.cpp @@ -19,12 +19,15 @@ #define B_TRANSLATION_CONTEXT "PrimaryPartitionEditor" -PrimaryPartitionEditor::PrimaryPartitionEditor() +PrimaryPartitionEditor::PrimaryPartitionEditor(bool first) { fActiveCheckBox = new BCheckBox("active", B_TRANSLATE("Active partition"), NULL); fView = new BGroupView(B_VERTICAL); fView->AddChild(fActiveCheckBox); + + // The first partition is active by default. Others are not. + fActiveCheckBox->SetValue(first); } diff --git a/src/add-ons/disk_systems/intel/PrimaryParameterEditor.h b/src/add-ons/disk_systems/intel/PrimaryParameterEditor.h index fad1f1caed..df60d12976 100644 --- a/src/add-ons/disk_systems/intel/PrimaryParameterEditor.h +++ b/src/add-ons/disk_systems/intel/PrimaryParameterEditor.h @@ -16,7 +16,7 @@ class PrimaryPartitionEditor : public BPartitionParameterEditor { public: - PrimaryPartitionEditor(); + PrimaryPartitionEditor(bool first); virtual ~PrimaryPartitionEditor(); virtual BView* View();