keyboard event not called on subclass of wxScrolledWindow (on mac)
Riccardo Cohen
rcohen at articque.com
Mon Sep 24 08:43:46 PDT 2007
The backtrace for the scroll bar is :
#0 wxControlContainerBase::HasAnyFocusableChildren
#1 0x001fd2d5 in wxControlContainerBase::UpdateCanFocus
#2 0x00065322 in wxPanel::AddChild
#3 0x0003fa64 in wxWindow::MacPostControlCreate
#4 0x000b6b79 in wxScrollBar::Create
#5 0x001f7158 in wxScrollBar::wxScrollBar
#6 0x00041eee in wxWindow::MacCreateScrollBars
#7 0x0004226d in wxWindow::Create
#8 0x0006547f in wxPanel::Create
#9 0x0004dce3 in wxScrolledWindow::Create
#10 0x001e5990 in wxScrolledWindow::wxScrolledWindow
#11 0x00002686 in artwx::artwx
and when I stop in IsClientAreaChild(child), I find :
(gdb) p this->m_hScrollBar
$6 = (class wxScrollBar *) 0x0
which seems to make MacIsWindowScrollbar answers "No".
when I stop at MacPostControlCreate, and try to track the AddChild call:
#0 wxWindowBase::AddChild (this=0x6017800, child=0x5931210) at
../src/common/wincmn.cpp:915
#1 0x00065312 in wxPanel::AddChild (this=0x6017800, child=0x5931210) at
../src/generic/panelg.cpp:100
panelg.cpp:100 WX_DELEGATE_TO_CONTROL_CONTAINER(wxPanel, wxWindow)
So I don't know when m_hScrollBar is updated.
Vadim Zeitlin wrote:
> On Mon, 24 Sep 2007 16:20:48 +0200 Riccardo Cohen <rcohen at articque.com> wrote:
>
> RC> first time it returns true :
> RC> #0 wxControlContainerBase::HasAnyFocusableChildren
> RC> #1 0x001fd2d5 in wxControlContainerBase::UpdateCanFocus
> RC> #2 0x00058392 in wxTopLevelWindowBase::AddChild
> RC> #3 0x0003fa64 in wxWindow::MacPostControlCreate
> RC> #4 0x000421bc in wxWindow::Create
> RC> #5 0x0006547f in wxPanel::Create
> RC> #6 0x0004dce3 in wxScrolledWindow::Create
> RC> #7 0x001e5990 in wxScrolledWindow::wxScrolledWindow
> RC> #8 0x00002686 in artwx::artwx
> RC>
> RC> it enters 2 more times in this function (for my class) returning always
> RC> true, (it is for the scrollbars)
>
> Do you see how does it happen? IsClientAreaChild() implementation in
> wx/mac/carbon/window.h explicitly checks for !MacIsWindowScrollbar() so I
> don't understand why it doesn't skip the scrollbars as it's intended to.
> Anyhow, this is clearly the bug which must be fixed...
>
> Regards,
> VZ
>
--
Très cordialement,
Riccardo Cohen
ligne directe : 02-47-49-63-24
-------------------------------------------
Articque
http://www.articque.com
149 av Général de Gaulle
37230 Fondettes - France
tel : 02-47-49-90-49
fax : 02-47-49-91-49
More information about the wx-users
mailing list