Fix TAB behaviour in a panel with notebook as only active child

If a panel contained a notebook and some other element(s) that didn't
accept focus (e.g. because they were disabled), TAB didn't wrap around
correctly. Fix this by ensuring the focus gets to the notebook itself in
this case by handling it in wxNotebook itself if the parent didn't do
anything.

See #25443.

(cherry picked from commit a2ed8ac9e6)
This commit is contained in:
Maarten Bent
2025-07-30 23:29:20 +02:00
committed by Vadim Zeitlin
parent 21dbdf9f15
commit 082d1fd28a
2 changed files with 9 additions and 2 deletions
+1
View File
@@ -274,6 +274,7 @@ wxMSW
- Fix regression in wxTreeCtrl indent size in high DPI (Maarten Bent, #25282).
- Fix using wxNO_IMPLICIT_WXSTRING_ENCODING with PCH (#25568).
- Fix crash when copying wxBitmaps if GDI resources are exhausted (#24703).
- Fix TAB behaviour in a panel with notebook as only active child (#25443).
wxOSX:
+8 -2
View File
@@ -1070,8 +1070,14 @@ void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event)
else if ( parent )
{
event.SetCurrentFocus(this);
parent->HandleWindowEvent(event);
}
if ( !parent->HandleWindowEvent(event) )
{
// if the parent didn't handle this event, the notebook
// must be its only child accepting focus, so take it
event.Skip(false);
SetFocus();
}
}
}
}
}