From 23e276114ecd95c7a6965fa98bb5854b4df11e40 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Fri, 25 May 2007 19:18:08 +0000 Subject: [PATCH] Really do nothing if pressed on an already pressed radio toolbar button tool git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@46211 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk/tbargtk.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/gtk/tbargtk.cpp b/src/gtk/tbargtk.cpp index 8c1a0537ff..11add68444 100644 --- a/src/gtk/tbargtk.cpp +++ b/src/gtk/tbargtk.cpp @@ -154,7 +154,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxControl) //----------------------------------------------------------------------------- extern "C" { -static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget), +static void gtk_toolbar_callback( GtkWidget *widget, wxToolBarTool *tool ) { if (g_isIdle) @@ -169,6 +169,14 @@ static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget), if (tool->CanBeToggled()) { + if (tool->IsRadio() && + gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(widget)) && + tool->IsToggled()) + { + // pressed an already pressed radio button + return; + } + tool->Toggle(); tool->SetImage(tool->GetBitmap()); @@ -474,7 +482,7 @@ bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase) ); wxCHECK_MSG(tool->m_item != NULL, false, _T("gtk_toolbar_insert_element() failed")); - + g_signal_connect (tool->m_item, "enter_notify_event", G_CALLBACK (gtk_toolbar_tool_callback), tool);