Ticket #15357 (closed defect: fixed)
wxHVScrolledWindow does not trigger SCROLLWIN event handler during vertical scrolling
|Reported by:||eco||Owned by:|
I'm upgrading our product from wx 2.8 to wx 2.9.5 and one snag I hit was wxHVScrolledWindow is not calling our EVT_SCROLLWIN event handler when the user scrolls vertically (but does when the user scrolls horizontally).
The wxHVScrolledWindow we were using with 2.8 was just a patch I made for 2.8 from when I originally wrote wxHVScrolledWindow (and Bryan gussied up for inclusion in wx) but looking at a diff it appears wxHVScrolledWindow is largely the same with the exception of:
"event.Skip(wasSkipped);" was removed from an "if ( processed )" inside the scroll event helper but restoring that if block didn't help.
The bug is easy to reproduce with the vscroll sample. Just stick a breakpoint in the HVScrollWindow::OnScroll event handler and scroll vertically (after switching the Mode to Horizontal/Vertical in the GUI). Interestingly VScrollWindow::OnScroll works fine so I suspect some sort of multiple inheritance or multiple pushed event handler problem (why it would manifest in 2.9.5 but not 2.8.x I don't know).
I tried adding an override to ProcessEvent to grab it before wxHVScrolledWindow's scroll event helper could get its hands on the event but the event never shows up there (horizontal SCROLLWIN events show up though).
I'm going to keep investigating but any insight would be great as my overall understanding of event processing is somewhat lacking.