]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/combobox.cpp
Applied patch [ 1188724 ] missing header in carbon CFM builds
[wxWidgets.git] / src / gtk1 / combobox.cpp
index 6c967b58beb49939b621618ddb10ae51b724bf01..517993327f502e7a4c842a1057dfb43738de4247 100644 (file)
@@ -75,8 +75,16 @@ gtk_popup_hide_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
 {
     // when the popup is hidden, throw a SELECTED event only if the combobox
     // selection changed.
-    int curSelection = combo->GetCurrentSelection();
-    if (g_SelectionBeforePopup != curSelection)
+    const int curSelection = combo->GetCurrentSelection();
+
+    const bool hasChanged = curSelection != g_SelectionBeforePopup;
+
+    // reset the selection flag to value meaning that it is hidden and do it
+    // now, before generating the events, so that GetSelection() returns the
+    // new value from the event handler
+    g_SelectionBeforePopup = wxID_NONE;
+
+    if ( hasChanged )
     {
         wxCommandEvent event( wxEVT_COMMAND_COMBOBOX_SELECTED, combo->GetId() );
         event.SetInt( curSelection );
@@ -90,9 +98,6 @@ gtk_popup_hide_callback(GtkCombo *WXUNUSED(gtk_combo), wxComboBox *combo)
         event2.SetEventObject( combo );
         combo->GetEventHandler()->ProcessEvent( event2 );
     }
-
-    // reset the selection flag to value meaning that it is hidden
-    g_SelectionBeforePopup = wxID_NONE;
 }
 }