git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15878 
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
-// This reduces flicker in wxGTK+
-static void wxSetMenuLabelOptimally(wxMenu* menu, int id, const wxString& label)
+static void wxSetMenuLabel(wxMenu* menu, int id, const wxString& label)
-    wxString oldLabel = menu->GetLabel(id);
-    oldLabel = wxStripMenuCodes(oldLabel.BeforeFirst('\t'));
-#ifdef __WXGTK__
-    oldLabel.Replace(wxT("_"), wxT("")); // GTK+ only
-#endif
-    wxString label1 = wxStripMenuCodes(label.BeforeFirst('\t'));
-    if (oldLabel != label1)
-        menu->SetLabel(id, label);
+    menu->SetLabel(id, label);
 }
 
 void wxCommandProcessor::SetMenuStrings()
 }
 
 void wxCommandProcessor::SetMenuStrings()
             else
                 buf = wxString(_("Can't &Undo ")) + commandName + m_undoAccelerator;
 
             else
                 buf = wxString(_("Can't &Undo ")) + commandName + m_undoAccelerator;
 
-            //m_commandEditMenu->SetLabel(wxID_UNDO, buf);
-            wxSetMenuLabelOptimally(m_commandEditMenu, wxID_UNDO, buf);
+            wxSetMenuLabel(m_commandEditMenu, wxID_UNDO, buf);
             
             m_commandEditMenu->Enable(wxID_UNDO, canUndo);
 
             
             m_commandEditMenu->Enable(wxID_UNDO, canUndo);
 
                 wxString redoCommandName(redoCommand->GetName());
                 if (redoCommandName == wxT("")) redoCommandName = _("Unnamed command");
                 buf = wxString(_("&Redo ")) + redoCommandName + m_redoAccelerator;
                 wxString redoCommandName(redoCommand->GetName());
                 if (redoCommandName == wxT("")) redoCommandName = _("Unnamed command");
                 buf = wxString(_("&Redo ")) + redoCommandName + m_redoAccelerator;
-                wxSetMenuLabelOptimally(m_commandEditMenu, wxID_REDO, buf);
+                wxSetMenuLabel(m_commandEditMenu, wxID_REDO, buf);
                 m_commandEditMenu->Enable(wxID_REDO, TRUE);
             }
             else
             {
                 m_commandEditMenu->Enable(wxID_REDO, TRUE);
             }
             else
             {
-                wxSetMenuLabelOptimally(m_commandEditMenu, wxID_REDO, _("&Redo") + m_redoAccelerator);
+                wxSetMenuLabel(m_commandEditMenu, wxID_REDO, _("&Redo") + m_redoAccelerator);
                 m_commandEditMenu->Enable(wxID_REDO, FALSE);
             }
         }
         else
         {
                 m_commandEditMenu->Enable(wxID_REDO, FALSE);
             }
         }
         else
         {
-            wxSetMenuLabelOptimally(m_commandEditMenu, wxID_UNDO, _("&Undo") + m_undoAccelerator);
+            wxSetMenuLabel(m_commandEditMenu, wxID_UNDO, _("&Undo") + m_undoAccelerator);
             m_commandEditMenu->Enable(wxID_UNDO, FALSE);
 
             if (m_commands.Number() == 0)
             {
             m_commandEditMenu->Enable(wxID_UNDO, FALSE);
 
             if (m_commands.Number() == 0)
             {
-                wxSetMenuLabelOptimally(m_commandEditMenu, wxID_REDO, _("&Redo") + m_redoAccelerator);
+                wxSetMenuLabel(m_commandEditMenu, wxID_REDO, _("&Redo") + m_redoAccelerator);
                 m_commandEditMenu->Enable(wxID_REDO, FALSE);
             }
             else
                 m_commandEditMenu->Enable(wxID_REDO, FALSE);
             }
             else
                 wxString redoCommandName(redoCommand->GetName());
                 if (redoCommandName == wxT("")) redoCommandName = _("Unnamed command");
                 buf = wxString(_("&Redo ")) + redoCommandName + m_redoAccelerator;
                 wxString redoCommandName(redoCommand->GetName());
                 if (redoCommandName == wxT("")) redoCommandName = _("Unnamed command");
                 buf = wxString(_("&Redo ")) + redoCommandName + m_redoAccelerator;
-                wxSetMenuLabelOptimally(m_commandEditMenu, wxID_REDO, buf);
+                wxSetMenuLabel(m_commandEditMenu, wxID_REDO, buf);
                 m_commandEditMenu->Enable(wxID_REDO, TRUE);
             }
         }
                 m_commandEditMenu->Enable(wxID_REDO, TRUE);
             }
         }
 
 
 void wxMenuItem::SetText( const wxString& str )
 {
 
 void wxMenuItem::SetText( const wxString& str )
 {
+    // Some optimization to avoid flicker
+    wxString oldLabel = m_text;
+    oldLabel = wxStripMenuCodes(oldLabel.BeforeFirst('\t'));
+    oldLabel.Replace(wxT("_"), wxT(""));
+    wxString label1 = wxStripMenuCodes(str.BeforeFirst('\t'));
+    if (oldLabel == label1)
+        return;
+    
     DoSetText(str);
 
     if (m_menuItem)
     DoSetText(str);
 
     if (m_menuItem)
 
 
 void wxMenuItem::SetText( const wxString& str )
 {
 
 void wxMenuItem::SetText( const wxString& str )
 {
+    // Some optimization to avoid flicker
+    wxString oldLabel = m_text;
+    oldLabel = wxStripMenuCodes(oldLabel.BeforeFirst('\t'));
+    oldLabel.Replace(wxT("_"), wxT(""));
+    wxString label1 = wxStripMenuCodes(str.BeforeFirst('\t'));
+    if (oldLabel == label1)
+        return;
+    
     DoSetText(str);
 
     if (m_menuItem)
     DoSetText(str);
 
     if (m_menuItem)