Merge branch 'next' of ssh://git.code.sf.net/p/flightgear/simgear into next

This commit is contained in:
Erik Hofman 2016-08-04 18:39:54 +02:00
commit 85c4e03823
4 changed files with 29 additions and 4 deletions

View File

@ -93,7 +93,7 @@ bool SGMaterialLib::load( const string &fg_root, const string& mpath,
// Read name node purely for logging purposes // Read name node purely for logging purposes
const SGPropertyNode *nameNode = node->getChild("name"); const SGPropertyNode *nameNode = node->getChild("name");
if (nameNode) { if (nameNode) {
SG_LOG( SG_TERRAIN, SG_INFO, "Loading region " SG_LOG( SG_TERRAIN, SG_DEBUG, "Loading region "
<< nameNode->getStringValue()); << nameNode->getStringValue());
} }
@ -113,7 +113,7 @@ bool SGMaterialLib::load( const string &fg_root, const string& mpath,
fabs(x2 - x1), fabs(x2 - x1),
fabs(y2 - y1)); fabs(y2 - y1));
arealist->push_back(rect); arealist->push_back(rect);
SG_LOG( SG_TERRAIN, SG_INFO, " Area (" SG_LOG( SG_TERRAIN, SG_DEBUG, " Area ("
<< rect.x() << "," << rect.x() << ","
<< rect.y() << ") width:" << rect.y() << ") width:"
<< rect.width() << " height:" << rect.width() << " height:"

View File

@ -107,7 +107,11 @@ osg::Vec2d eventToWindowCoords(const osgGA::GUIEventAdapter& ea)
if (_buttons.find(button) == _buttons.end()) { if (_buttons.find(button) == _buttons.end()) {
return false; return false;
} }
if (!anyBindingEnabled(_bindingsDown)) {
return false;
}
fireBindingList(_bindingsDown); fireBindingList(_bindingsDown);
_repeatTime = -_repeatInterval; // anti-bobble: delay start of repeat _repeatTime = -_repeatInterval; // anti-bobble: delay start of repeat
return true; return true;
@ -136,7 +140,7 @@ osg::Vec2d eventToWindowCoords(const osgGA::GUIEventAdapter& ea)
virtual bool hover( const osg::Vec2d& windowPos, virtual bool hover( const osg::Vec2d& windowPos,
const Info& ) const Info& )
{ {
if (_hover.empty()) { if (!anyBindingEnabled(_hover)) {
return false; return false;
} }

View File

@ -165,3 +165,18 @@ void clearBindingList(const SGBindingList& aBindings)
} }
} }
bool anyBindingEnabled(const SGBindingList& aBindings)
{
if (aBindings.empty()) {
return false;
}
BOOST_FOREACH(SGBinding_ptr b, aBindings) {
if (!b->test()) {
return false;
}
}
return true;
}

View File

@ -171,4 +171,10 @@ SGBindingList readBindingList(const simgear::PropertyList& aNodes, SGPropertyNod
*/ */
void clearBindingList(const SGBindingList& aBindings); void clearBindingList(const SGBindingList& aBindings);
/**
* check if at least one binding in the list is enabled. Returns false if bindings
* list is empty, or all bindings are conditinally disabled.
*/
bool anyBindingEnabled(const SGBindingList& bindings);
#endif #endif