2009-03-27 Ivan N. Zlatev <contact@i-nz.net>
authorIvan Zlatev <ivan@ivanz.com>
Fri, 27 Mar 2009 23:32:30 +0000 (23:32 -0000)
committerIvan Zlatev <ivan@ivanz.com>
Fri, 27 Mar 2009 23:32:30 +0000 (23:32 -0000)
* DataGridView.cs: If the column header isn't visible allow resizing
using the cell column border. Also be sure to reset the cursor properly.
[Fixes bug #489929]

svn path=/trunk/mcs/; revision=130446

mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridView.cs

index 8827ea0940bcff2d3091630d3cd7d7677cf9e1cc..b8965290126bd4768f624918a1385134c13f37f1 100644 (file)
@@ -1,3 +1,9 @@
+2009-03-27  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * DataGridView.cs: If the column header isn't visible allow resizing 
+       using the cell column border. Also be sure to reset the cursor properly.
+       [Fixes bug #489929]
+
 2009-03-26   Carlos Alberto Cortez <calberto.cortez@gmail.com>
 
        * ToolStrip.cs: When disposing, iterate over the items in reverse
index 2c4fb975571ed5b48a6900f6e071518a2c9c9956..22fb20975d5d96fca5f968e6e745929b63edb997 100644 (file)
@@ -4325,7 +4325,9 @@ namespace System.Windows.Forms {
                        DataGridViewRow row = null;
                        Rectangle cellBounds;
 
-                       if (hitTest.Type == DataGridViewHitTestType.ColumnHeader && MouseOverColumnResize (hitTest.ColumnIndex, e.X)) {
+                       if ((hitTest.Type == DataGridViewHitTestType.ColumnHeader ||
+                            (hitTest.Type == DataGridViewHitTestType.Cell && !ColumnHeadersVisible)) 
+                           && MouseOverColumnResize (hitTest.ColumnIndex, e.X)) {
                                if (e.Clicks == 2) {
                                        AutoResizeColumn (hitTest.ColumnIndex);
                                        return;
@@ -4429,7 +4431,12 @@ namespace System.Windows.Forms {
                        Cursor new_cursor = Cursors.Default;
                        HitTestInfo hit = this.HitTest (e.X, e.Y);
                        
-                       if (hit.Type == DataGridViewHitTestType.Cell) {
+                       if (hit.Type == DataGridViewHitTestType.ColumnHeader || 
+                           (!ColumnHeadersVisible && hit.Type == DataGridViewHitTestType.Cell && MouseOverColumnResize (hit.ColumnIndex, e.X))) {
+                               EnteredHeaderCell = Columns [hit.ColumnIndex].HeaderCell;
+                               if (MouseOverColumnResize (hit.ColumnIndex, e.X))
+                                       new_cursor = Cursors.VSplit;
+                       } else if (hit.Type == DataGridViewHitTestType.Cell) {
                                EnteredHeaderCell = null;
 
                                DataGridViewCell new_cell = GetCellInternal (hit.ColumnIndex, hit.RowIndex);
@@ -4450,6 +4457,8 @@ namespace System.Windows.Forms {
                                                MouseLeftErrorIcon (new_cell);
                                }
                                
+                               Cursor = new_cursor;
+
                                // We have never been in a cell before
                                if (hover_cell == null) {
                                        hover_cell = new_cell;
@@ -4525,13 +4534,7 @@ namespace System.Windows.Forms {
                                }
                        
                        } else {
-                               if (hit.Type == DataGridViewHitTestType.ColumnHeader) {
-                                       EnteredHeaderCell = Columns [hit.ColumnIndex].HeaderCell;
-                                       
-                                       if (MouseOverColumnResize (hit.ColumnIndex, e.X))
-                                               new_cursor = Cursors.VSplit;
-                               } else
-                                       EnteredHeaderCell = null;
+                               EnteredHeaderCell = null;
 
                                // We have left the cell area
                                if (hover_cell != null) {