pair<int, int> DecodeTrace::v_extents() const
{
// Make an empty decode trace appear symmetrical
- if (max_visible_rows_ == 0)
+ if (visible_rows_ == 0)
return make_pair(-default_row_height_, default_row_height_);
unsigned int height = 0;
if (r.expanding) {
if (r.height < r.expanded_height) {
r.anim_height += height_delta / (float)AnimationDurationInTicks;
- r.height = r.anim_height;
+ r.height = min((int)r.anim_height, (int)r.expanded_height);
r.anim_shape += ArrowSize / (float)AnimationDurationInTicks;
animation_finished = false;
} else
if (r.collapsing) {
if (r.height > default_row_height_) {
r.anim_height -= height_delta / (float)AnimationDurationInTicks;
- r.height = r.anim_height;
+ r.height = max((int)r.anim_height, (int)0);
r.anim_shape -= ArrowSize / (float)AnimationDurationInTicks;
animation_finished = false;
} else