-rw-r--r-- | korganizer/kotodoview.cpp | 21 | ||||
-rw-r--r-- | korganizer/kotodoview.h | 2 |
2 files changed, 17 insertions, 6 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index 395325c..935a5f5 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp @@ -731,6 +731,7 @@ void KOTodoView::storeCurrentItem() { mCurItem = 0; mCurItemRootParent = 0; + mCurItemParent = 0; mCurItemAbove = 0; mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); if (mActiveItem) { @@ -739,6 +740,7 @@ void KOTodoView::storeCurrentItem() if ( activeItemAbove ) mCurItemAbove = activeItemAbove->todo(); mCurItemRootParent = mCurItem; + mCurItemParent = mCurItemRootParent->relatedTo(); while ( mCurItemRootParent->relatedTo() != 0 ) mCurItemRootParent = mCurItemRootParent->relatedTo(); } @@ -750,6 +752,7 @@ void KOTodoView::resetCurrentItem() mTodoListView->setFocus(); KOTodoViewItem* foundItem = 0; KOTodoViewItem* foundItemRoot = 0; + KOTodoViewItem* foundItemParent = 0; KOTodoViewItem* foundItemAbove = 0; if ( mTodoListView->firstChild () ) { if ( mCurItem ) { @@ -761,16 +764,24 @@ void KOTodoView::resetCurrentItem() } else if ( item->todo() == mCurItemAbove ) { foundItemAbove = item; - } else if ( item->todo() == mCurItemRootParent ) { + } + if ( item->todo() == mCurItemRootParent ) { foundItemRoot = item; } + if ( item->todo() == mCurItemParent ) { + foundItemParent = item; + } item = (KOTodoViewItem*)item->itemBelow(); } if ( ! foundItem ) { - if ( foundItemRoot ) - foundItem = foundItemRoot; - else - foundItem = foundItemAbove; + if ( foundItemParent ) { + foundItem = foundItemParent; + } else { + if ( foundItemRoot ) + foundItem = foundItemRoot; + else + foundItem = foundItemAbove; + } } } if ( foundItem ) { diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h index 39976cf..d0788a9 100644 --- a/korganizer/kotodoview.h +++ b/korganizer/kotodoview.h @@ -257,7 +257,7 @@ class KOTodoView : public KOrg::BaseView DateNavigator* mNavigator; void storeCurrentItem(); void resetCurrentItem(); - Incidence * mCurItem, *mCurItemRootParent,*mCurItemAbove; + Incidence * mCurItem, *mCurItemRootParent, *mCurItemParent,*mCurItemAbove; }; #endif |