hrev44530 adds 1 changeset to branch 'master' old head: eb020bee4ba3d4dbfe4d749548e31b58a9ba63a5 new head: 8cbdf82a0a71dd2ffe7e6522ea102f9896554162 ---------------------------------------------------------------------------- 8cbdf82: 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. [ Philippe Saint-Pierre <stpere@xxxxxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev44530 Commit: 8cbdf82a0a71dd2ffe7e6522ea102f9896554162 URL: http://cgit.haiku-os.org/haiku/commit/?id=8cbdf82 Author: Philippe Saint-Pierre <stpere@xxxxxxxxx> Date: Tue Aug 14 20:22:41 2012 UTC Ticket: https://dev.haiku-os.org/ticket/8876 ---------------------------------------------------------------------------- 1 file changed, 6 insertions(+), 2 deletions(-) src/kits/tracker/PoseView.cpp | 8 ++++++-- ---------------------------------------------------------------------------- diff --git a/src/kits/tracker/PoseView.cpp b/src/kits/tracker/PoseView.cpp index 3082040..0060b32 100644 --- a/src/kits/tracker/PoseView.cpp +++ b/src/kits/tracker/PoseView.cpp @@ -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); } }