aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/ManaTools/Module/Disk.pm14
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/ManaTools/Module/Disk.pm b/lib/ManaTools/Module/Disk.pm
index 83ed4d65..8fd1232b 100644
--- a/lib/ManaTools/Module/Disk.pm
+++ b/lib/ManaTools/Module/Disk.pm
@@ -364,8 +364,18 @@ sub _rebuildButtonBox {
my $totalWeight = $maxparts * $minsize;
# TODO: dependant upon disk types, etc...
$offset = $alignment;
- $self->W("$self: parent $parent does not have a size property") if !defined($parent->prop('size'));
- my $totalWidth = $parent->prop('size') - $boundary - $offset; # offset at beginning, boundary at end
+ my $size = 0;
+ if (!defined($parent->prop('size')) || !$parent->hasProp('size')) {
+ $self->W("$self: parent $parent does not have a size property, calculation from children");
+ for my $i (@items) {
+ $size = $i->prop('start') + $i->prop('sectors') if ($i->prop('start') + $i->prop('sectors')) > $size;
+ }
+ $size = $size + $boundary;
+ }
+ else {
+ $size = $parent->prop('size');
+ }
+ my $totalWidth = $size - $boundary - $offset; # offset at beginning, boundary at end
my $start = $offset;
my $buttonWidths = [];
my $count = 0;