fix FindMenu broken by implementation of double ampersands in menu and menu
item titles (finding "&File" was no longer working) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18237 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -591,6 +591,9 @@ wxString wxMenuBar::GetLabelTop( size_t pos ) const
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// don't remove ampersands '&' since if we have them in the menu title
|
||||||
|
// it means that they were doubled to indicate "&" instead of accelerator
|
||||||
|
|
||||||
label += *pc;
|
label += *pc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -778,7 +781,7 @@ wxString wxMenuItemBase::GetLabelFromText(const wxString& text)
|
|||||||
|
|
||||||
for ( const wxChar *pc = text.c_str(); *pc; pc++ )
|
for ( const wxChar *pc = text.c_str(); *pc; pc++ )
|
||||||
{
|
{
|
||||||
if ( *pc == wxT('_') )
|
if ( *pc == wxT('_') )
|
||||||
{
|
{
|
||||||
// GTK 1.2 escapes "xxx_xxx" to "xxx__xxx"
|
// GTK 1.2 escapes "xxx_xxx" to "xxx__xxx"
|
||||||
pc++;
|
pc++;
|
||||||
@@ -796,9 +799,15 @@ wxString wxMenuItemBase::GetLabelFromText(const wxString& text)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if ( (*pc == wxT('&')) && (*(pc+1) != wxT('&')) )
|
||||||
|
{
|
||||||
|
// wxMSW escapes "&"
|
||||||
|
// "&" is doubled to indicate "&" instead of accelerator
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
label += *pc;
|
label += *pc;
|
||||||
}
|
}
|
||||||
|
|
||||||
return label;
|
return label;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -971,6 +980,9 @@ wxString wxMenuItem::GetFactoryPath() const
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// don't remove ampersands '&' since if we have them in the menu item title
|
||||||
|
// it means that they were doubled to indicate "&" instead of accelerator
|
||||||
|
|
||||||
path += *pc;
|
path += *pc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -591,6 +591,9 @@ wxString wxMenuBar::GetLabelTop( size_t pos ) const
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// don't remove ampersands '&' since if we have them in the menu title
|
||||||
|
// it means that they were doubled to indicate "&" instead of accelerator
|
||||||
|
|
||||||
label += *pc;
|
label += *pc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -778,7 +781,7 @@ wxString wxMenuItemBase::GetLabelFromText(const wxString& text)
|
|||||||
|
|
||||||
for ( const wxChar *pc = text.c_str(); *pc; pc++ )
|
for ( const wxChar *pc = text.c_str(); *pc; pc++ )
|
||||||
{
|
{
|
||||||
if ( *pc == wxT('_') )
|
if ( *pc == wxT('_') )
|
||||||
{
|
{
|
||||||
// GTK 1.2 escapes "xxx_xxx" to "xxx__xxx"
|
// GTK 1.2 escapes "xxx_xxx" to "xxx__xxx"
|
||||||
pc++;
|
pc++;
|
||||||
@@ -796,9 +799,15 @@ wxString wxMenuItemBase::GetLabelFromText(const wxString& text)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if ( (*pc == wxT('&')) && (*(pc+1) != wxT('&')) )
|
||||||
|
{
|
||||||
|
// wxMSW escapes "&"
|
||||||
|
// "&" is doubled to indicate "&" instead of accelerator
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
label += *pc;
|
label += *pc;
|
||||||
}
|
}
|
||||||
|
|
||||||
return label;
|
return label;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -971,6 +980,9 @@ wxString wxMenuItem::GetFactoryPath() const
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// don't remove ampersands '&' since if we have them in the menu item title
|
||||||
|
// it means that they were doubled to indicate "&" instead of accelerator
|
||||||
|
|
||||||
path += *pc;
|
path += *pc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user