From d0a662e20a6eb37a59883c2c9377604f8c94cf03 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Fri, 31 Oct 2014 14:12:44 +0100 Subject: [PATCH] Intel partition: activate the first created partition. The default MBR relies on at least one partition being active. The first one sounds like a good choice. Fixes #7930. --- src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp | 4 +++- src/add-ons/disk_systems/intel/PrimaryParameterEditor.cpp | 5 ++++- src/add-ons/disk_systems/intel/PrimaryParameterEditor.h | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) 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();