BUG: Work around buggy scrolling behavior from wx. wx.ScrolledWindow does not handle child controls within deeply nested Panels receiving focus. It tries to scroll to each of the nesting Panels in turn before the focussed control. This leads to the spasming behavior reported in #1678. This shows up in wx 2.8.8 because they implemented that behavior in the C++ at that time. The Python implementation that we were using (and patching) does not override that C++ without the workaround in this patch. In order to get rid of all of the spasming behavior, the workaround needs to simply ignore OnChildFocus events coming from wx.Panels. We should probably revisit this algorithm in the future, but this should solve the problems currently seen in the wild with wx 2.8.8.
BUG: Work around buggy scrolling behavior from wx. wx.ScrolledWindow does not handle child controls within deeply nested Panels receiving focus. It tries to scroll to each of the nesting Panels in turn before the focussed control. This leads to the spasming behavior reported in #1678. This shows up in wx 2.8.8 because they implemented that behavior in the C++ at that time. The Python implementation that we were using (and patching) does not override that C++ without the workaround in this patch. In order to get rid of all of the spasming behavior, the workaround needs to simply ignore OnChildFocus events coming from wx.Panels. We should probably revisit this algorithm in the future, but this should solve the problems currently seen in the wild with wx 2.8.8.

pankajp/pyface,geggo/pyface,brett-patterson/pyface,geggo/pyface