Tracker: Drawing glitch when created Pose is first in PoseView

Due to clipping of a rect to match the view bounds, there was a confusion
as to whether the rect was at the top of the view bounds, or above the view
bounds as both met the condition.

Fixes #8876.
This commit is contained in:
Philippe Saint-Pierre 2012-08-14 16:22:41 -04:00
parent eb020bee4b
commit 8cbdf82a0a

View File

@ -1091,7 +1091,10 @@ BPoseView::CommitActivePose(bool saveChanges)
loc = ActivePose()->Location(this);
ActivePose()->Commit(saveChanges, loc, this, index);
BPose *pose = fActivePose;
fActivePose = NULL;
if (fFiltering && !FilterPose(pose))
RemoveFilteredPose(pose, index);
}
}
@ -1742,7 +1745,8 @@ BPoseView::AddPoseToList(PoseList* list, bool visibleList, bool insertionSort,
// to show the area below the items that have already
// been added.
if (srcRect.top == viewBounds.top
&& srcRect.bottom >= viewBounds.top) {
&& srcRect.bottom >= viewBounds.top
&& poseIndex != 0) {
// if new pose above current view bounds, cache up
// the draw and do it later
listViewScrollBy += fListElemHeight;
@ -5469,7 +5473,7 @@ BPoseView::EntryMoved(const BMessage* message)
bounds, scrollBy, true);
} else if (visible && !FilterPose(pose))
RemoveFilteredPose(pose, index);
else
else if (visible)
_CheckPoseSortOrder(fFilteredPoseList, pose, index);
}
}