X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b07d7130880c63b7f7908606a10f885e2719efc..bbf7db28cbab49712d486679e4614479c04d0fbd:/src/gtk/choice.cpp diff --git a/src/gtk/choice.cpp b/src/gtk/choice.cpp index ba049f6447..41ef1aba6f 100644 --- a/src/gtk/choice.cpp +++ b/src/gtk/choice.cpp @@ -17,6 +17,13 @@ #include "gdk/gdk.h" #include "gtk/gtk.h" +//----------------------------------------------------------------------------- +// idle system +//----------------------------------------------------------------------------- + +extern void wxapp_install_idle_handler(); +extern bool g_isIdle; + //----------------------------------------------------------------------------- // data //----------------------------------------------------------------------------- @@ -29,17 +36,17 @@ extern bool g_blockEventsOnDrag; static void gtk_choice_clicked_callback( GtkWidget *WXUNUSED(widget), wxChoice *choice ) { - if (!choice->HasVMT()) - return; + if (g_isIdle) wxapp_install_idle_handler(); + + if (!choice->HasVMT()) return; - if (g_blockEventsOnDrag) - return; + if (g_blockEventsOnDrag) return; - wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, choice->GetId() ); - event.SetInt( choice->GetSelection() ); - event.SetString( choice->GetStringSelection() ); - event.SetEventObject(choice); - choice->GetEventHandler()->ProcessEvent(event); + wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, choice->GetId() ); + event.SetInt( choice->GetSelection() ); + event.SetString( choice->GetStringSelection() ); + event.SetEventObject(choice); + choice->GetEventHandler()->ProcessEvent(event); } //-----------------------------------------------------------------------------