From 33487ab5f20309e33b4734dbea9201b5b0d893a2 Mon Sep 17 00:00:00 2001 From: Christian Widmer Date: Sat, 12 Dec 2015 23:09:19 +0100 Subject: [PATCH] DolphinWX: Fix label change for the play/pause button This fixes changing the play/pause button's label depending on the emulation state. Before, wxToolBarToolBase's SetLabel() function was used. This function, however, is not implemented in wxGTK which leads to the label not changing on linux when the button is clicked. Although the preferred method (according to the wxWidgets documentation) to change the properties of a tool is to use the toolbar's setters, there is no such setter for the label. Therefore, this implements a workaround where the button is deleted and readded afterwards with the updated properties. Thanks to linkmauve for noticing this! --- Source/Core/DolphinWX/FrameTools.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Source/Core/DolphinWX/FrameTools.cpp b/Source/Core/DolphinWX/FrameTools.cpp index d92a206e75..d5d5c7e6bb 100644 --- a/Source/Core/DolphinWX/FrameTools.cpp +++ b/Source/Core/DolphinWX/FrameTools.cpp @@ -1792,17 +1792,19 @@ void CFrame::UpdateGUI() if (PlayTool) { + int position = m_ToolBar->GetToolPos(IDM_PLAY); + if (Running) { - PlayTool->SetLabel(_("Pause")); - PlayTool->SetShortHelp(_("Pause")); - m_ToolBar->SetToolNormalBitmap(IDM_PLAY, m_Bitmaps[Toolbar_Pause]); + m_ToolBar->DeleteTool(IDM_PLAY); + m_ToolBar->InsertTool(position, IDM_PLAY, _("Pause"), m_Bitmaps[Toolbar_Pause], + wxNullBitmap, wxITEM_NORMAL, _("Pause")); } else { - PlayTool->SetLabel(_("Play")); - PlayTool->SetShortHelp(_("Play")); - m_ToolBar->SetToolNormalBitmap(IDM_PLAY, m_Bitmaps[Toolbar_Play]); + m_ToolBar->DeleteTool(IDM_PLAY); + m_ToolBar->InsertTool(position, IDM_PLAY, _("Play"), m_Bitmaps[Toolbar_Play], + wxNullBitmap, wxITEM_NORMAL, _("Play")); } } }