-rw-r--r-- | korganizer/kotodoview.cpp | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index 0a315cb..01cf0ff 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp @@ -220,3 +220,3 @@ void KOTodoListView::contentsMousePressEvent(QMouseEvent* e) treeStepSize() * (i->depth() + (rootIsDecorated() ? 1 : 0)) + - itemMargin() || + itemMargin() +i->height()|| X < header()->sectionPos(0)) { @@ -224,2 +224,4 @@ void KOTodoListView::contentsMousePressEvent(QMouseEvent* e) } + } else { + rootClicked = false; } @@ -732,5 +734,5 @@ void KOTodoView::storeCurrentItem() mCurItemAbove = activeItemAbove->todo(); - while ( mActiveItem->parent() != 0 ) - mActiveItem = (KOTodoViewItem*)mActiveItem->parent(); - mCurItemRootParent = mActiveItem->todo(); + mCurItemRootParent = mCurItem; + while ( mCurItemRootParent->relatedTo() != 0 ) + mCurItemRootParent = mCurItemRootParent->relatedTo(); } @@ -761,6 +763,6 @@ void KOTodoView::resetCurrentItem() if ( ! foundItem ) { - if ( foundItemAbove ) - foundItem = foundItemAbove; - else + if ( foundItemRoot ) foundItem = foundItemRoot; + else + foundItem = foundItemAbove; } @@ -1207,4 +1209,7 @@ void KOTodoView::setAllOpen() updateView(); + } else { + storeCurrentItem(); } setOpen(mTodoListView->firstChild(), true); + resetCurrentItem(); } @@ -1216,4 +1221,7 @@ void KOTodoView::setAllClose() updateView(); + } else { + storeCurrentItem(); } setOpen(mTodoListView->firstChild(), false); + resetCurrentItem(); } @@ -1256,4 +1264,6 @@ void KOTodoView::setAllFlat() return; - } + } + storeCurrentItem(); displayAllFlat(); + resetCurrentItem(); } |