From: kishorekumar Dachinamoorthy Date: Wed, 3 Apr 2013 13:04:01 +0000 (+0530) Subject: Fixing the JIRS issue N_SE-31653. X-Git-Tag: accepted/tizen_2.1/20130425.033138~429^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4ae8abd7756f6a8a813eecaac9a942ee9a99e0e9;p=framework%2Fosp%2Fuifw.git Fixing the JIRS issue N_SE-31653. Change-Id: I9351f7ff4210ef0f4b88b9ee901dbe0c5b43a047 Signed-off-by: kishorekumar Dachinamoorthy --- diff --git a/src/ui/controls/FUiCtrl_SliderPresenter.cpp b/src/ui/controls/FUiCtrl_SliderPresenter.cpp index cfece61..edbb797 100644 --- a/src/ui/controls/FUiCtrl_SliderPresenter.cpp +++ b/src/ui/controls/FUiCtrl_SliderPresenter.cpp @@ -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) { diff --git a/src/ui/inc/FUiCtrl_SliderPresenter.h b/src/ui/inc/FUiCtrl_SliderPresenter.h index 6cc815b..a6c5715 100644 --- a/src/ui/inc/FUiCtrl_SliderPresenter.h +++ b/src/ui/inc/FUiCtrl_SliderPresenter.h @@ -154,6 +154,7 @@ private: int __sliderX; int __handleX; + int __prevSliderValue; bool __isSliderPressed; bool __isNeedToBeUpdated;