Fix RTL layout of menus with GTK
Set layout direction for all menu items and sub-menus, setting just the top level menu doesn't do much
This commit is contained in:
@@ -827,7 +827,24 @@ wxMenu::~wxMenu()
|
|||||||
void wxMenu::SetLayoutDirection(wxLayoutDirection dir)
|
void wxMenu::SetLayoutDirection(wxLayoutDirection dir)
|
||||||
{
|
{
|
||||||
if ( m_owner )
|
if ( m_owner )
|
||||||
|
{
|
||||||
wxWindow::GTKSetLayout(m_owner, dir);
|
wxWindow::GTKSetLayout(m_owner, dir);
|
||||||
|
|
||||||
|
wxMenuItemList::compatibility_iterator node = m_items.GetFirst();
|
||||||
|
for (; node; node = node->GetNext())
|
||||||
|
{
|
||||||
|
wxMenuItem* item = node->GetData();
|
||||||
|
if (wxMenu* subMenu = item->GetSubMenu())
|
||||||
|
subMenu->SetLayoutDirection(dir);
|
||||||
|
else if (GtkWidget* widget = item->GetMenuItem())
|
||||||
|
{
|
||||||
|
wxWindow::GTKSetLayout(widget, dir);
|
||||||
|
widget = gtk_bin_get_child(GTK_BIN(widget));
|
||||||
|
if (widget)
|
||||||
|
wxWindow::GTKSetLayout(widget, dir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
//else: will be called later by wxMenuBar again
|
//else: will be called later by wxMenuBar again
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user