diff --git a/include/osgProducer/KeyboardMouseCallback b/include/osgProducer/KeyboardMouseCallback index d9bb69655..f06e5d200 100644 --- a/include/osgProducer/KeyboardMouseCallback +++ b/include/osgProducer/KeyboardMouseCallback @@ -35,6 +35,8 @@ class OSGPRODUCER_EXPORT KeyboardMouseCallback : public Producer::KeyboardMouseC virtual void mouseMotion( float mx, float my); + virtual void passiveMouseMotion( float mx, float my); + virtual void buttonPress( float mx, float my, unsigned int mbutton ); virtual void buttonRelease( float mx, float my, unsigned int mbutton ); diff --git a/src/osgProducer/KeyboardMouseCallback.cpp b/src/osgProducer/KeyboardMouseCallback.cpp index 75664843c..2a778dfbd 100644 --- a/src/osgProducer/KeyboardMouseCallback.cpp +++ b/src/osgProducer/KeyboardMouseCallback.cpp @@ -60,6 +60,20 @@ void KeyboardMouseCallback::mouseMotion( float mx, float my) } +void KeyboardMouseCallback::passiveMouseMotion( float mx, float my) +{ + _mx = mx; + _my = my; + + osg::ref_ptr event = new EventAdapter; + event->adaptMouseMotion(getTime(),mx,my); + + _eventQueueMutex.lock(); + _eventQueue.push_back(event); + _eventQueueMutex.unlock(); + +} + void KeyboardMouseCallback::buttonPress( float mx, float my, unsigned int mbutton ) { _mx = mx;