Introduced new GUIEventAdatper singleton for sharing the current state between
multiple GraphicsWindows, this singleton is accessable via GUIEventEvent::getAccumulatedEventState(). Added use of this new singleton in GraphicsWindow* implementations. Added WindowSizeHandler to osgkeyboard to help with debugging of event state between windows.
This commit is contained in:
@@ -15,6 +15,13 @@
|
||||
|
||||
using namespace osgGA;
|
||||
|
||||
|
||||
osg::ref_ptr<GUIEventAdapter>& GUIEventAdapter::getAccumulatedEventState()
|
||||
{
|
||||
static osg::ref_ptr<GUIEventAdapter> s_eventState = new GUIEventAdapter;
|
||||
return s_eventState;
|
||||
}
|
||||
|
||||
GUIEventAdapter::GUIEventAdapter():
|
||||
_handled(false),
|
||||
_eventType(NONE),
|
||||
|
||||
@@ -485,6 +485,10 @@ struct OSXCarbonWindowingSystemInterface : public osg::GraphicsContext::Windowin
|
||||
|
||||
void GraphicsWindowCarbon::init()
|
||||
{
|
||||
if (_initialized) return;
|
||||
|
||||
getEventQueue()->setCurrentEventState(osgGA::GUIEventAdapter::getAccumulatedEventState().get());
|
||||
|
||||
_windowTitleHeight = 0;
|
||||
_closeRequested = false;
|
||||
_ownsWindow = false;
|
||||
|
||||
@@ -1010,6 +1010,8 @@ void GraphicsWindowWin32::init()
|
||||
{
|
||||
if (_initialized) return;
|
||||
|
||||
getEventQueue()->setCurrentEventState(osgGA::GUIEventAdapter::getAccumulatedEventState().get());
|
||||
|
||||
WindowData *windowData = _traits.get() ? dynamic_cast<WindowData*>(_traits->inheritedWindowData.get()) : 0;
|
||||
HWND windowHandle = windowData ? windowData->_hwnd : 0;
|
||||
|
||||
|
||||
@@ -456,6 +456,8 @@ void GraphicsWindowX11::init()
|
||||
return;
|
||||
}
|
||||
|
||||
getEventQueue()->setCurrentEventState(osgGA::GUIEventAdapter::getAccumulatedEventState().get());
|
||||
|
||||
WindowData* inheritedWindowData = dynamic_cast<WindowData*>(_traits->inheritedWindowData.get());
|
||||
|
||||
_display = XOpenDisplay(_traits->displayName().c_str());
|
||||
|
||||
Reference in New Issue
Block a user