X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3bce7509838b4402927bca57a764954c868eb388..e208b369f0b11a704248fbc1c8483cbc85f60fd1:/src/gtk/button.cpp?ds=sidebyside diff --git a/src/gtk/button.cpp b/src/gtk/button.cpp index 07a3dac108..1347e6ddae 100644 --- a/src/gtk/button.cpp +++ b/src/gtk/button.cpp @@ -22,6 +22,13 @@ class wxButton; +//----------------------------------------------------------------------------- +// idle system +//----------------------------------------------------------------------------- + +extern void wxapp_install_idle_handler(); +extern bool g_isIdle; + //----------------------------------------------------------------------------- // data //----------------------------------------------------------------------------- @@ -34,12 +41,14 @@ extern bool g_blockEventsOnDrag; static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton *button ) { - if (!button->HasVMT()) return; - if (g_blockEventsOnDrag) return; + if (g_isIdle) wxapp_install_idle_handler(); + + if (!button->HasVMT()) return; + if (g_blockEventsOnDrag) return; - wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, button->GetId()); - event.SetEventObject(button); - button->GetEventHandler()->ProcessEvent(event); + wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, button->GetId()); + event.SetEventObject(button); + button->GetEventHandler()->ProcessEvent(event); } //----------------------------------------------------------------------------- @@ -54,7 +63,7 @@ wxButton::wxButton() wxButton::~wxButton() { - if (m_clientData) delete m_clientData; + if (m_clientData) delete m_clientData; } bool wxButton::Create( wxWindow *parent, wxWindowID id, const wxString &label,