--- a/uifw/AvKon/src/Aknslider.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/Aknslider.cpp Fri Apr 16 15:13:44 2010 +0300
@@ -3150,6 +3150,15 @@
{
if ( touchDownArea.Contains( aEvent.iPosition ) )
{
+ TInt stepCount = SliderData()->Range() / SliderData()->iStepSize;
+ if ( stepCount <= KStepThreshold )
+ {
+ MTouchFeedback* feedback = MTouchFeedback::Instance();
+ if ( feedback )
+ {
+ feedback->InstantFeedback( this, ETouchFeedbackBasicSlider, aEvent );
+ }
+ }
// repeat until thumb reaches the stylus down position
iExt->iPenInputPos = aEvent.iPosition;
@@ -3161,7 +3170,7 @@
MTouchFeedback* feedback = MTouchFeedback::Instance();
if ( feedback )
{
- feedback->InstantFeedback( this, ETouchFeedbackSlider, aEvent );
+ feedback->InstantFeedback( this, ETouchFeedbackBasicSlider, aEvent );
}
iExt->SetFlag( CAknSliderExtension::EFlagDraggingThumb );
reportDragEvent = EDragMarkerStart;
@@ -3248,7 +3257,7 @@
if ( feedback )
{
feedback->InstantFeedback( this,
- ETouchFeedbackSlider,
+ ETouchFeedbackBasicSlider,
ETouchFeedbackVibra,
aEvent );
}
@@ -3609,11 +3618,29 @@
{
if( aFeedback )
{
- MTouchFeedback* feedback = MTouchFeedback::Instance();
- if ( feedback )
- {
- feedback->InstantFeedback( this, ETouchFeedbackSlider );
- }
+ TInt stepCount = SliderData()->Range() / SliderData()->iStepSize;
+ if ( stepCount > KStepThreshold )
+ {
+ if ( iExt->IsFlagSet( CAknSliderExtension::EFlagPlayingContinuousFb ))
+ {
+ if ( SliderData()->iFeedbackStyle == EAknSliderFbDynamic )
+ {
+ ModifyFeedback();
+ }
+ }
+ else
+ {
+ StartFeedback( NULL, KNoFeedbackTimeout );
+ }
+ }
+ else
+ {
+ MTouchFeedback* feedback = MTouchFeedback::Instance();
+ if ( feedback )
+ {
+ feedback->InstantFeedback( this, ETouchFeedbackBasicSlider );
+ }
+ }
}
Window().Invalidate( Rect() );