summaryrefslogtreecommitdiff
path: root/lily/grob.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lily/grob.cc')
-rw-r--r--lily/grob.cc14
1 files changed, 8 insertions, 6 deletions
diff --git a/lily/grob.cc b/lily/grob.cc
index eafa66288e..23a1cafae4 100644
--- a/lily/grob.cc
+++ b/lily/grob.cc
@@ -338,14 +338,16 @@ Grob::relative_coordinate (Grob const *refp, Axis a) const
/* We catch PARENT_L_ == nil case with this, but we crash if we did
not ask for the absolute coordinate (ie. REFP == nil.) */
- Real off = get_offset (a);
- if (refp == dim_cache_[a].parent_)
- return off;
- if (dim_cache_[a].parent_ != NULL)
- off += dim_cache_[a].parent_->relative_coordinate (refp, a);
+ return get_offset (a) + parent_relative (refp, a);
+}
- return off;
+Real
+Grob::parent_relative (Grob const *refp, Axis a) const
+{
+ if (Grob *p = get_parent (a))
+ return p->relative_coordinate (refp, a);
+ return 0.0;
}
Real