diff -r c52421ed5f07 -r a1caeb42b3a3 uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp --- a/uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp Mon Jun 21 15:57:43 2010 +0300 +++ b/uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp Thu Jul 15 18:56:19 2010 +0300 @@ -261,7 +261,7 @@ if ( aPointerEvent.iType == TPointerEvent::EButton1Up ) { iTreeListView->SetPressedDownState( EFalse ); - if ( iTreeListView->SingleClickEnabled() && !aMarking ) + if ( iTreeListView->SingleClickEnabled() ) { iHighlightTimer->Cancel(); iTreeListView->EnableHighlight( EFalse ); @@ -337,7 +337,7 @@ } } - if ( iItemToBeSelected != NULL && !aMarking) + if ( iItemToBeSelected != NULL && !aMarking ) { iTreeListView->SelectItem( iItemToBeSelected ); iItemToBeSelected = NULL; @@ -355,7 +355,7 @@ if ( item && (*iItems)[ii].Rect().Contains( adjustedPosition ) ) { - if ( aPointerEvent.iType == TPointerEvent::EButton1Down ) + if ( aPointerEvent.iType == TPointerEvent::EButton1Up ) { // Marking mode if ( aMarking ) @@ -363,16 +363,26 @@ TBool drawNow = ( item == iTreeListView->FocusedItem() ); if ( aShiftPressed ) { - iTreeListView->MarkItems( iTreeListView->FocusedItem(), item, - !item->IsMarked(), drawNow ); + if ( iTreeListView->HighlightEnabled() ) + { + iTreeListView->MarkItems( iTreeListView->FocusedItem(), item, + !item->IsMarked(), drawNow ); + } + else + { + iTreeListView->MarkItem( item, !item->IsMarked(), drawNow ); + } } else if ( aCtrlPressed ) { iTreeListView->MarkItem( item, !item->IsMarked(), drawNow ); } - } - else if ( iTreeListView->SingleClickEnabled() - && !wasFlicking ) + } + } + else if ( aPointerEvent.iType == TPointerEvent::EButton1Down ) + { + if ( iTreeListView->SingleClickEnabled() + && !wasFlicking && !aMarking ) { iItemToBeSelected = item; iTreeListView->SetFocusedItem( item, ii, EFalse ); @@ -430,21 +440,12 @@ iPlayFeedbackOnUp = ETrue; } } - if ( !aMarking ) + // timer will be launched everytime, but not + // if flicking was ongoing AND it was stopped by tapping + // to highlighted item or to folder (=node) + if ( !( wasFlicking && iItemToBeSelected != NULL ) ) { - // timer will be launched everytime, but not - // if flicking was ongoing AND it was stopped by tapping - // to highlighted item or to folder (=node) - if ( !( wasFlicking && iItemToBeSelected != NULL ) ) - { - LaunchHighlightTimer( wasScrolling ); - } - } - else - { - // Pressed down highlight or highlight timer - // are not used in marking mode. - SetHighlight(); + LaunchHighlightTimer( wasScrolling ); } } else if ( aPointerEvent.iType == TPointerEvent::EDrag ) @@ -824,12 +825,6 @@ TUint /*aFlags*/ ) { iScrollIndex = aNewPosition.iY - iViewRect.Height() / 2; - TTouchFeedbackType feedbackType = ETouchFeedbackVibra; - if ( iPhysics->OngoingPhysicsAction() - == CAknPhysics::EAknPhysicsActionDragging ) - { - feedbackType = static_cast(ETouchFeedbackAudio | ETouchFeedbackVibra); - } if ( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionBouncing ) { @@ -905,7 +900,7 @@ if ( bottomItem != iTree->VisibleItemCount() - 1 ) iFeedback->InstantFeedback( iTreeListView, ETouchFeedbackSensitiveList, - feedbackType, + ETouchFeedbackVibra, TPointerEvent() ); } } @@ -915,7 +910,7 @@ { iFeedback->InstantFeedback( iTreeListView, ETouchFeedbackSensitiveList, - feedbackType, + ETouchFeedbackVibra, TPointerEvent() ); } } @@ -925,7 +920,7 @@ { iFeedback->InstantFeedback( iTreeListView, ETouchFeedbackSensitiveList, - feedbackType, + ETouchFeedbackVibra, TPointerEvent() ); } }