]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/choice.cpp
Fix for bug# 956875. Added some wxCHECK's to MSW's wxTreeCtrl to make
[wxWidgets.git] / src / msw / choice.cpp
index 5f49fcd97d6e72cc6b3b4c95e64bd17aa0bc4ee1..af029bf042dbdf1cc587f20673fa933ce80f810d 100644 (file)
@@ -175,6 +175,22 @@ bool wxChoice::Create(wxWindow *parent,
                   style, validator, name);
 }
 
+bool wxChoice::MSWShouldPreProcessMessage(WXMSG *pMsg)
+{
+    MSG *msg = (MSG *) pMsg;
+
+    // don't preprocess "ESC" if combobox is dropped down
+    if ( msg->message == WM_KEYDOWN && msg->wParam == VK_ESCAPE )
+    {
+        if (::SendMessage(GetHwndOf(this), CB_GETDROPPEDSTATE, 0, 0))
+        {
+            return false;
+        }
+    }
+
+    return wxControl::MSWShouldPreProcessMessage(pMsg);
+}
+
 WXDWORD wxChoice::MSWGetStyle(long style, WXDWORD *exstyle) const
 {
     // we never have an external border
@@ -441,7 +457,7 @@ void wxChoice::DoGetSize(int *w, int *h) const
     // total height of the control including the drop down list -- but only
     // sometimes, and normally it isn't... I have no idea about what to do with
     // this
-    wxControl::DoGetSize(w, h);
+    wxControl::DoGetSize(w, h);    
 }
 
 void wxChoice::DoSetSize(int x, int y,
@@ -470,6 +486,11 @@ void wxChoice::DoSetSize(int x, int y,
 
     wxControl::DoSetSize(x, y, width, height, sizeFlags);
 
+    // I'm commenting this out since the code appears to make choices
+    // and comboxes too high when they have associated sizers. I'm sure this
+    // is not the end of the story, which is why I'm leaving it #if'ed out for
+    // now. JACS.
+#if 0
     // if the height specified for the visible part of the control is
     // different from the current one, we need to change it separately
     // as it is not affected by normal WM_SETSIZE
@@ -482,6 +503,9 @@ void wxChoice::DoSetSize(int x, int y,
             SendMessage(GetHwnd(), CB_SETITEMHEIGHT, (WPARAM)-1, h + delta);
         }
     }
+#else
+    wxUnusedVar(heightOrig);
+#endif
 }
 
 wxSize wxChoice::DoGetBestSize() const