Don't assert if Ctrl+Tab is pressed inside a wxGTK window
Ignore the WinChange flag in DoNavigateIn() to fix an assertion that happened when pressing Ctrl+Tab with the generic wxListCtrl having focus. This seems to be consistent with pressing Ctrl+Tab elsewhere, e.g. when cycling between buttons in a dialog.
This commit is contained in:
@@ -3818,26 +3818,17 @@ void wxWindowGTK::DoMoveInTabOrder(wxWindow *win, WindowOrder move)
|
|||||||
|
|
||||||
bool wxWindowGTK::DoNavigateIn(int flags)
|
bool wxWindowGTK::DoNavigateIn(int flags)
|
||||||
{
|
{
|
||||||
if ( flags & wxNavigationKeyEvent::WinChange )
|
wxWindow *parent = wxGetTopLevelParent((wxWindow *)this);
|
||||||
{
|
wxCHECK_MSG( parent, false, wxT("every window must have a TLW parent") );
|
||||||
wxFAIL_MSG( wxT("not implemented") );
|
|
||||||
|
|
||||||
return false;
|
GtkDirectionType dir;
|
||||||
}
|
dir = flags & wxNavigationKeyEvent::IsForward ? GTK_DIR_TAB_FORWARD
|
||||||
else // navigate inside the container
|
: GTK_DIR_TAB_BACKWARD;
|
||||||
{
|
|
||||||
wxWindow *parent = wxGetTopLevelParent((wxWindow *)this);
|
|
||||||
wxCHECK_MSG( parent, false, wxT("every window must have a TLW parent") );
|
|
||||||
|
|
||||||
GtkDirectionType dir;
|
gboolean rc;
|
||||||
dir = flags & wxNavigationKeyEvent::IsForward ? GTK_DIR_TAB_FORWARD
|
g_signal_emit_by_name(parent->m_widget, "focus", dir, &rc);
|
||||||
: GTK_DIR_TAB_BACKWARD;
|
|
||||||
|
|
||||||
gboolean rc;
|
return rc != 0;
|
||||||
g_signal_emit_by_name(parent->m_widget, "focus", dir, &rc);
|
|
||||||
|
|
||||||
return rc != 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxWindowGTK::GTKWidgetNeedsMnemonic() const
|
bool wxWindowGTK::GTKWidgetNeedsMnemonic() const
|
||||||
|
Reference in New Issue
Block a user