mirror of https://github.com/axmolengine/axmol.git
fixed #1308: Used std::sort to sort the touchHandler array.
This commit is contained in:
parent
fea278b5b2
commit
f466b081c9
|
@ -38,12 +38,11 @@ NS_CC_BEGIN
|
||||||
/**
|
/**
|
||||||
* Used for sort
|
* Used for sort
|
||||||
*/
|
*/
|
||||||
static int less(const void* p1, const void* p2)
|
static int less(const CCObject* p1, const CCObject* p2)
|
||||||
{
|
{
|
||||||
return (*((CCTouchHandler**)p1))->getPriority() - (*((CCTouchHandler**)p2))->getPriority();
|
return ((CCTouchHandler*)p1)->getPriority() < ((CCTouchHandler*)p2)->getPriority();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool CCTouchDispatcher::isDispatchEvents(void)
|
bool CCTouchDispatcher::isDispatchEvents(void)
|
||||||
{
|
{
|
||||||
return m_bDispatchEvents;
|
return m_bDispatchEvents;
|
||||||
|
@ -293,8 +292,7 @@ CCTouchHandler* CCTouchDispatcher::findHandler(CCArray* pArray, CCTouchDelegate
|
||||||
|
|
||||||
void CCTouchDispatcher::rearrangeHandlers(CCArray *pArray)
|
void CCTouchDispatcher::rearrangeHandlers(CCArray *pArray)
|
||||||
{
|
{
|
||||||
// FIXME: qsort is not supported in bada1.0, so we must implement it ourselves.
|
std::sort(pArray->data->arr, pArray->data->arr + pArray->data->num, less);
|
||||||
qsort(pArray->data->arr, pArray->data->num, sizeof(pArray->data->arr[0]), less);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCTouchDispatcher::setPriority(int nPriority, CCTouchDelegate *pDelegate)
|
void CCTouchDispatcher::setPriority(int nPriority, CCTouchDelegate *pDelegate)
|
||||||
|
@ -307,11 +305,13 @@ void CCTouchDispatcher::setPriority(int nPriority, CCTouchDelegate *pDelegate)
|
||||||
|
|
||||||
CCAssert(handler != NULL, "");
|
CCAssert(handler != NULL, "");
|
||||||
|
|
||||||
|
if (handler->getPriority() != nPriority)
|
||||||
|
{
|
||||||
handler->setPriority(nPriority);
|
handler->setPriority(nPriority);
|
||||||
|
|
||||||
this->rearrangeHandlers(m_pTargetedHandlers);
|
this->rearrangeHandlers(m_pTargetedHandlers);
|
||||||
this->rearrangeHandlers(m_pStandardHandlers);
|
this->rearrangeHandlers(m_pStandardHandlers);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// dispatch events
|
// dispatch events
|
||||||
|
|
Loading…
Reference in New Issue