X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1db8dc4a2b5b664e922b9d049320ec0354e0eccf..19f45995fb86029cb9800bdce8f0cc677c816283:/src/gtk/checkbox.cpp diff --git a/src/gtk/checkbox.cpp b/src/gtk/checkbox.cpp index e63a67f08a..e038003ca6 100644 --- a/src/gtk/checkbox.cpp +++ b/src/gtk/checkbox.cpp @@ -12,10 +12,12 @@ #pragma implementation "checkbox.h" #endif -#include "wx/checkbox.h" +#include "wx/defs.h" #if wxUSE_CHECKBOX +#include "wx/checkbox.h" + #include #include @@ -44,6 +46,8 @@ static void gtk_checkbox_clicked_callback( GtkWidget *WXUNUSED(widget), wxCheckB if (!cb->m_hasVMT) return; if (g_blockEventsOnDrag) return; + + if (cb->m_blockEvent) return; wxCommandEvent event(wxEVT_COMMAND_CHECKBOX_CLICKED, cb->GetId()); event.SetInt( cb->GetValue() ); @@ -72,6 +76,7 @@ bool wxCheckBox::Create(wxWindow *parent, { m_needParent = TRUE; m_acceptsFocus = TRUE; + m_blockEvent = FALSE; if (!PreCreation( parent, pos, size ) || !CreateBase( parent, id, pos, size, style, validator, name )) @@ -141,16 +146,11 @@ void wxCheckBox::SetValue( bool state ) if (state == GetValue()) return; - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widgetCheckbox), - GTK_SIGNAL_FUNC(gtk_checkbox_clicked_callback), - (gpointer *)this ); + m_blockEvent = TRUE; gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_widgetCheckbox), state ); - gtk_signal_connect( GTK_OBJECT(m_widgetCheckbox), - "clicked", - GTK_SIGNAL_FUNC(gtk_checkbox_clicked_callback), - (gpointer *)this ); + m_blockEvent = FALSE; } bool wxCheckBox::GetValue() const