-rw-r--r-- | korganizer/kotodoview.cpp | 13 | ||||
-rw-r--r-- | korganizer/kotodoview.h | 2 |
2 files changed, 13 insertions, 2 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,18 +764,26 @@ 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 ( foundItemParent ) { + foundItem = foundItemParent; + } else { if ( foundItemRoot ) foundItem = foundItemRoot; else foundItem = foundItemAbove; } } + } if ( foundItem ) { mTodoListView->setCurrentItem( foundItem ); mTodoListView->ensureItemVisible( 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 |