injectMousePress to specific layer

raptor16

01-07-2012 05:44:02

How to injectMousePress to specific layer?
Since I have RTT and normal layer at the same time.

raptor16

01-07-2012 07:18:11

I added a parameter ILayer(default=nullptr) to injectMouseMove and getLayerItemByPoint, and set layer pick-able at run time. ( moved mIsPick to ILayer)
Widget* LayerManager::getWidgetFromPoint(int _left, int _top, ILayer *specLayer)
{
VectorLayer::reverse_iterator iter = mLayerNodes.rbegin();
while (iter != mLayerNodes.rend())
{
ILayerItem* item =nullptr;

if (!specLayer)
item = (*iter)->getLayerItemByPoint(_left, _top);
else if (*iter==specLayer)
{
bool oldPick=(*iter)->mIsPick;
(*iter)->mIsPick=true;
item = (*iter)->getLayerItemByPoint(_left, _top);
(*iter)->mIsPick=oldPick;
}
if (item != nullptr) return static_cast<Widget*>(item);
++iter;
}
return nullptr;
}


Any other idea?