Splitter 2.8 and 2.9x diff

Hi,

When I run with 2.9.5 or Phoenix I see this exception in Dabo:

wx._core.PyAssertionError: C++ assertion "GetEventType() == wxEVT_COMMAND_SPLITTER_DOUBLECLICKED" failed at C:\BUILD\wxPython-src-2.9.5.0.b20130318\include\wx/generic/splitter.h(362) in wxSplitterEvent::GetX():
File "c:\dev\dabo\dabo\ui\uiwx\dSplitter.py", line 519, in <module>
   test.Test().runTest(_dSplitter_test)
File "c:\dev\dabo\dabo\ui\uiwx\test.py", line 76, in runTest
   self.app.start()
File "c:\dev\dabo\dabo\dApp.py", line 401, in start
   self.uiApp.start()
File "c:\dev\dabo\dabo\ui\uiwx\uiApp.py", line 460, in start
   self.MainLoop()
File "c:\Python27\Lib\site-packages\wx-2.9.5-msw\wx\_core.py", line 8660, in MainLoop
   wx.PyApp.MainLoop(self)
File "c:\Python27\Lib\site-packages\wx-2.9.5-msw\wx\_core.py", line 7952, in MainLoop
   return _core_.PyApp_MainLoop(*args, **kwargs)
File "c:\dev\dabo\dabo\ui\uiwx\dSplitter.py", line 240, in _onSashPos
   self.raiseEvent(dEvents.SashPositionChanged, evt)
File "c:\dev\dabo\dabo\ui\uiwx\dPemMixin.py", line 1084, in raiseEvent
   super(dPemMixin, self).raiseEvent(eventClass, nativeEvent, *args, **kwargs)
File "c:\dev\dabo\dabo\lib\eventMixin.py", line 71, in raiseEvent
   eventData=eventData, *args, **kwargs)
File "c:\dev\dabo\dabo\dEvents.py", line 28, in __init__
   self._insertEventData()
File "c:\dev\dabo\dabo\dEvents.py", line 68, in _insertEventData
   uiEventData = dabo.ui.getEventData(nativeEvent)
File "c:\dev\dabo\dabo\ui\uiwx\__init__.py", line 462, in getEventData
   ed["mousePosition"] = (wxEvt.GetX(), wxEvt.GetY())
File "c:\Python27\Lib\site-packages\wx-2.9.5-msw\wx\_windows.py", line 1739, in GetX
   return _windows_.SplitterEvent_GetX(*args, **kwargs)

Dabo is using "if isinstance(wxEvt, (wx.SplitterEvent,)):" before calling "GetX" on the event, what should that be in 2.9.5?

Werner

Werner wrote:

Hi,

When I run with 2.9.5 or Phoenix I see this exception in Dabo:

wx._core.PyAssertionError: C++ assertion "GetEventType() ==
wxEVT_COMMAND_SPLITTER_DOUBLECLICKED" failed at
C:\BUILD\wxPython-src-2.9.5.0.b20130318\include\wx/generic/splitter.h(362)
in wxSplitterEvent::GetX():
File "c:\dev\dabo\dabo\ui\uiwx\dSplitter.py", line 519, in <module>
test.Test().runTest(_dSplitter_test)
File "c:\dev\dabo\dabo\ui\uiwx\test.py", line 76, in runTest
self.app.start()
File "c:\dev\dabo\dabo\dApp.py", line 401, in start
self.uiApp.start()
File "c:\dev\dabo\dabo\ui\uiwx\uiApp.py", line 460, in start
self.MainLoop()
File "c:\Python27\Lib\site-packages\wx-2.9.5-msw\wx\_core.py", line
8660, in MainLoop
wx.PyApp.MainLoop(self)
File "c:\Python27\Lib\site-packages\wx-2.9.5-msw\wx\_core.py", line
7952, in MainLoop
return _core_.PyApp_MainLoop(*args, **kwargs)
File "c:\dev\dabo\dabo\ui\uiwx\dSplitter.py", line 240, in _onSashPos
self.raiseEvent(dEvents.SashPositionChanged, evt)
File "c:\dev\dabo\dabo\ui\uiwx\dPemMixin.py", line 1084, in raiseEvent
super(dPemMixin, self).raiseEvent(eventClass, nativeEvent, *args, **kwargs)
File "c:\dev\dabo\dabo\lib\eventMixin.py", line 71, in raiseEvent
eventData=eventData, *args, **kwargs)
File "c:\dev\dabo\dabo\dEvents.py", line 28, in __init__
self._insertEventData()
File "c:\dev\dabo\dabo\dEvents.py", line 68, in _insertEventData
uiEventData = dabo.ui.getEventData(nativeEvent)
File "c:\dev\dabo\dabo\ui\uiwx\__init__.py", line 462, in getEventData
ed["mousePosition"] = (wxEvt.GetX(), wxEvt.GetY())
File "c:\Python27\Lib\site-packages\wx-2.9.5-msw\wx\_windows.py", line
1739, in GetX
return _windows_.SplitterEvent_GetX(*args, **kwargs)

Dabo is using "if isinstance(wxEvt, (wx.SplitterEvent,)):" before
calling "GetX" on the event, what should that be in 2.9.5?

I'm not sure why the C++ code should have that assert as the worst that could happen is that an uninitialized integer is returned. But anyway, to avoid that assert the code should check if wxEvt.GetEventType() is equal to wx.wxEVT_COMMAND_SPLITTER_DOUBLECLICKED.

···

--
Robin Dunn
Software Craftsman

Hi Robin,

Werner wrote:

Hi,

...

Dabo is using "if isinstance(wxEvt, (wx.SplitterEvent,)):" before
calling "GetX" on the event, what should that be in 2.9.5?

I'm not sure why the C++ code should have that assert as the worst that could happen is that an uninitialized integer is returned. But anyway, to avoid that assert the code should check if wxEvt.GetEventType() is equal to wx.wxEVT_COMMAND_SPLITTER_DOUBLECLICKED.

Thanks
Werner

···

On 17/06/2013 20:28, Robin Dunn wrote: