]> git.saurik.com Git - wxWidgets.git/commitdiff
Fixed dropdown height of wxChoice and wxComboBox controls.
authorDimitri Schoolwerth <dimitri.schoolwerth@gmail.com>
Mon, 31 Oct 2011 11:30:45 +0000 (11:30 +0000)
committerDimitri Schoolwerth <dimitri.schoolwerth@gmail.com>
Mon, 31 Oct 2011 11:30:45 +0000 (11:30 +0000)
When using comctl32.dll versions prior to 6.0 (e.g. with Win2k or no manifest file) the dropdown height of a wxChoice and wxComboBox would show all but one item and a vertical scrollbar was always visible. Fixed by reintroducing code that adds 1 to the total number of items. The code got dropped in r60553, added a comment to it in the hope that it will not be lost again.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69612 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/choice.cpp

index 03d3b3fb50fb1912af0de865e57f7abc7002850d..3fd0fefc5a338c79101d8e712674737adb03e1ed 100644 (file)
@@ -544,7 +544,10 @@ void wxChoice::DoSetSize(int x, int y,
     const int hItem = SendMessage(GetHwnd(), CB_GETITEMHEIGHT, 0, 0);
     int heightWithItems = 0;
     if (!HasFlag(wxCB_SIMPLE))
-        heightWithItems = height + hItem*nItems;
+        // The extra item (" + 1") is required to prevent a vertical
+        // scrollbar from appearing with comctl32.dll versions earlier
+        // than 6.0 (such as found in Win2k).
+        heightWithItems = height + hItem*(nItems + 1);
     else
         heightWithItems = SetHeightSimpleComboBox(nItems);