]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/listbox.cpp
Store menus titles in menus themselves in wxOSX.
[wxWidgets.git] / src / msw / listbox.cpp
index 3e19b2a9f2d94d014000bdc1a61b6c825589e22f..97bbe9284072a0717466fe8c4cb7386b681b1b0d 100644 (file)
@@ -351,7 +351,11 @@ void wxListBox::DoSetSelection(int N, bool select)
 
     if ( HasMultipleSelection() )
     {
-        SendMessage(GetHwnd(), LB_SETSEL, select, N);
+        // Setting selection to -1 should deselect everything.
+        const bool deselectAll = N == wxNOT_FOUND;
+        SendMessage(GetHwnd(), LB_SETSEL,
+                    deselectAll ? FALSE : select,
+                    deselectAll ? -1 : N);
     }
     else
     {
@@ -686,7 +690,17 @@ bool wxListBox::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
 
     // We get events even when mouse is clicked outside of any valid item from
     // Windows, just ignore them.
-    return n != wxNOT_FOUND && SendEvent(evtType, n, true /* selection */);
+    if ( n == wxNOT_FOUND )
+       return false;
+
+    if ( param == LBN_SELCHANGE )
+    {
+        if ( !DoChangeSingleSelection(n) )
+            return false;
+    }
+
+    // Do generate an event otherwise.
+    return SendEvent(evtType, n, true /* selection */);
 }
 
 WXLRESULT