dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dotgnu-pnet-commits] pnetlib ChangeLog System.Windows.Forms/ComboBox.cs


From: Radek Polak
Subject: [dotgnu-pnet-commits] pnetlib ChangeLog System.Windows.Forms/ComboBox.cs
Date: Mon, 05 Feb 2007 14:20:42 +0000

CVSROOT:        /sources/dotgnu-pnet
Module name:    pnetlib
Changes by:     Radek Polak <radekp>    07/02/05 14:20:42

Modified files:
        .              : ChangeLog 
        System.Windows.Forms: ComboBox.cs 

Log message:
        fix combo box dropdown drawing

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pnetlib/ChangeLog?cvsroot=dotgnu-pnet&r1=1.2474&r2=1.2475
http://cvs.savannah.gnu.org/viewcvs/pnetlib/System.Windows.Forms/ComboBox.cs?cvsroot=dotgnu-pnet&r1=1.18&r2=1.19

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/dotgnu-pnet/pnetlib/ChangeLog,v
retrieving revision 1.2474
retrieving revision 1.2475
diff -u -b -r1.2474 -r1.2475
--- ChangeLog   5 Feb 2007 11:06:22 -0000       1.2474
+++ ChangeLog   5 Feb 2007 14:20:42 -0000       1.2475
@@ -1,4 +1,8 @@
-2007-01-05  Deryk Robosson <address@hidden>
+2007-02-05  Radek Polak  <address@hidden>
+
+       * System.Windows.Forms/ComboBox.cs: Fix dropdown drawing, bug #18928.
+
+2007-02-05  Deryk Robosson  <address@hidden>
 
        * System.Windows.Forms/TreeNode.cs: Check if index will put us below
        zero before referencing.

Index: System.Windows.Forms/ComboBox.cs
===================================================================
RCS file: /sources/dotgnu-pnet/pnetlib/System.Windows.Forms/ComboBox.cs,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- System.Windows.Forms/ComboBox.cs    13 Apr 2005 10:54:18 -0000      1.18
+++ System.Windows.Forms/ComboBox.cs    5 Feb 2007 14:20:42 -0000       1.19
@@ -911,7 +911,7 @@
                        {
                                int y = 0;
                                g.SetClip(new Rectangle(0, 0, popupDrawWidth, 
popup.Height));
-                               for (int i = scrollbar.Value; i < Items.Count; 
i++)
+                               for (int i = FirstDdItem; i < Items.Count; i++)
                                {
                                        if (pos == -1 | i == pos)
                                        {
@@ -1013,12 +1013,32 @@
                        }
                }
 
+               // Index of first item in the DrowpDown list
+               private int FirstDdItem
+               {
+                       get
+                       {
+                               if(items.Count <= MaxDropDownItems)
+                               {
+                                       return 0;
+                               }
+                               else if(scrollbar.Value + MaxDropDownItems < 
Items.Count)
+                               {
+                                       return scrollbar.Value;
+                               }
+                               else
+                               {
+                                       return Items.Count - MaxDropDownItems;
+                               }
+                       }
+               }
+
                private int ItemFromY(int y)
                {
                        if (DrawMode != DrawMode.OwnerDrawVariable)
-                               return y / actualItemHeight + scrollbar.Value;
+                               return y / actualItemHeight + FirstDdItem;
                        int itemY = 0;
-                       for (int i = scrollbar.Value; i < Items.Count; i++)
+                       for (int i = FirstDdItem; i < Items.Count; i++)
                        {
                                itemY += itemHeights[i];
                                if (y < itemY)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]