The mnemonics conversion was not done correctly when the menu title contained
them but the menu hadn't been appended to the menu bar yet.
Closes #15461.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74731 
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
 - Set correct cursor when the mouse is over image map links in wxHTML (LukasK).
 - Add wxPropertyGridPageState::GetColumnFullWidth() (Teodor Petrov).
 
+wxGTK:
+
+- Fix wxMenu::GetTitle() before the menu is appended to the bar (David Hart).
+
 wxMSW:
 
 - It is now possible to tab into radio boxes again.
 
     // Returns the title, with mnemonics translated to wx format
     wxString GetTitle() const;
 
-    // TODO: virtual void SetTitle(const wxString& title);
+    // Sets the title, with mnemonics translated to gtk format
+    virtual void SetTitle(const wxString& title);
 
     // implementation GTK only
     GtkWidget       *m_menu;  // GtkMenu
 
     else
 #endif // wxUSE_LIBHILDON || wxUSE_LIBHILDON2 /!wxUSE_LIBHILDON && !wxUSE_LIBHILDON2
     {
-        const wxString str(wxConvertMnemonicsToGTK(title));
-
         // This doesn't have much effect right now.
-        menu->SetTitle( str );
+        menu->SetTitle( title );
 
+        const wxString str(wxConvertMnemonicsToGTK(title));
         // The "m_owner" is the "menu item"
         menu->m_owner = gtk_menu_item_new_with_mnemonic( wxGTK_CONV( str ) );
 
 
     wxMenu* menu = node->GetData();
 
-    const wxString str(wxConvertMnemonicsToGTK(label));
-
-    menu->SetTitle( str );
+    menu->SetTitle( label );
 
+    const wxString str(wxConvertMnemonicsToGTK(label));
     if (menu->m_owner)
         gtk_label_set_text_with_mnemonic(GTK_LABEL(gtk_bin_get_child(GTK_BIN(menu->m_owner))), wxGTK_CONV(str));
 }
     return wxConvertMnemonicsFromGTK(wxMenuBase::GetTitle());
 }
 
+void wxMenu::SetTitle(const wxString& title)
+{
+    wxMenuBase::SetTitle(wxConvertMnemonicsToGTK(title));
+}
+
 void wxMenu::GtkAppend(wxMenuItem* mitem, int pos)
 {
     GtkWidget *menuItem;
 
 
     subMenu->AppendSubMenu(subsubMenu, "Subsubmen&u", "Test a subsubmenu");
 
+    // Check GetTitle() returns the correct string _before_ appending to the bar
+    fileMenu->SetTitle("&Foo\tCtrl-F");
+    CPPUNIT_ASSERT_EQUAL( "&Foo\tCtrl-F", fileMenu->GetTitle() );
+
     PopulateMenu(fileMenu, "Filemenu item ", itemcount);
 
     fileMenu->Append(MenuTestCase_Foo, "&Foo\tCtrl-F", "Test item to be found");