Fixing the JIRS issue N_SE-31653.
authorkishorekumar Dachinamoorthy <kishore.d@samsung.com>
Wed, 3 Apr 2013 13:04:01 +0000 (18:34 +0530)
committerkishorekumar Dachinamoorthy <kishore.d@samsung.com>
Thu, 4 Apr 2013 14:50:10 +0000 (20:20 +0530)
Change-Id: I9351f7ff4210ef0f4b88b9ee901dbe0c5b43a047
Signed-off-by: kishorekumar Dachinamoorthy <kishore.d@samsung.com>
src/ui/controls/FUiCtrl_SliderPresenter.cpp
src/ui/inc/FUiCtrl_SliderPresenter.h

index cfece61..edbb797 100644 (file)
@@ -83,6 +83,7 @@ _SliderPresenter::_SliderPresenter(void)
        , __pTitleTextObject(null)
        , __sliderX(0)
        , __handleX(0)
+       , __prevSliderValue(0)
        , __isSliderPressed(false)
        , __isNeedToBeUpdated(true)
        , __isResourceLoaded(false)
@@ -1460,6 +1461,7 @@ _SliderPresenter::OnTouchPressed(const _Control& source, const _TouchInfo& touch
                __isSliderPressed = true;
 
                int candidateValue = CalculateSliderValue(point.x, point.x - __handleRect.x);
+               __prevSliderValue = candidateValue;
 
                __pSliderModel->SetValue(candidateValue);
                __pSlider->SetAccessibilityElementValue();
@@ -1515,11 +1517,26 @@ _SliderPresenter::OnTouchReleased(const _Control& source, const _TouchInfo& touc
                        __pSliderOverlay->Close();
                }
 
+               //  Slider Event Fire is required if some handle value changes not fired sldier event because of timer call back.
+               if (__prevSliderValue != candidateValue)
+               {
+                       _SliderEvent* pSliderEvent = dynamic_cast <_SliderEvent*>(__pSlider->GetSliderEvent());
+                       if (pSliderEvent != null)
+                       {
+                               IEventArg* pEventArg = _SliderEvent::CreateSliderEventArgN(candidateValue);
+
+                               result r = GetLastResult();
+                               SysTryReturn(NID_UI_CTRL, pEventArg != null, true, r, "[%s] Propagating.", GetErrorMessage(r));
+
+                               pSliderEvent->Fire(*pEventArg);
+                       }
+               }
+
                // Adjustment Event Fire
                _AdjustmentEvent* pAdjustmentEvent = dynamic_cast <_AdjustmentEvent*>(__pSlider->GetAdjustmentEvent());
                if (pAdjustmentEvent != null)
                {
-                       Tizen::Base::Runtime::IEventArg* pEventArg = _AdjustmentEvent::CreateAdjustmentEventArgN(candidateValue);
+                       IEventArg* pEventArg = _AdjustmentEvent::CreateAdjustmentEventArgN(candidateValue);
                        result r = GetLastResult();
                        SysTryReturn(NID_UI_CTRL, pEventArg != null, true, r, "[%s] Propagating.", GetErrorMessage(r));
 
@@ -1574,6 +1591,8 @@ _SliderPresenter::OnTimerExpired(Timer& timer)
        float handleHalfWidth = __handleRect.width / 2;
        int candidateValue = CalculateSliderValue(__currentPosition.x, handleHalfWidth);
 
+       __prevSliderValue = candidateValue;
+
        __pSliderModel->SetValue(candidateValue);
        __pSlider->SetAccessibilityElementValue();
 
@@ -1584,7 +1603,7 @@ _SliderPresenter::OnTimerExpired(Timer& timer)
        _SliderEvent* pSliderEvent = dynamic_cast <_SliderEvent*>(__pSlider->GetSliderEvent());
        if (pSliderEvent != null)
        {
-               Tizen::Base::Runtime::IEventArg* pEventArg = _SliderEvent::CreateSliderEventArgN(candidateValue);
+               IEventArg* pEventArg = _SliderEvent::CreateSliderEventArgN(candidateValue);
 
                if( pEventArg == null)
                {
index 6cc815b..a6c5715 100644 (file)
@@ -154,6 +154,7 @@ private:
 
        int __sliderX;
        int __handleX;
+       int __prevSliderValue;
        bool __isSliderPressed;
 
        bool __isNeedToBeUpdated;