]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/grid.cpp
[ 1515213 ] Combo sample improvements.
[wxWidgets.git] / src / generic / grid.cpp
index f54c31bd7edb3ae24e17184c6235212808b1aaf1..698a97d8c8038dff10121cb632c499386a4a53a5 100644 (file)
@@ -29,6 +29,7 @@
     #include "wx/valtext.h"
     #include "wx/intl.h"
     #include "wx/math.h"
+    #include "wx/listbox.h"
 #endif
 
 #include "wx/textfile.h"
@@ -4172,10 +4173,6 @@ wxGrid::~wxGrid()
 // be removed as well as the #else cases below.
 #define _USE_VISATTR 0
 
-#if _USE_VISATTR
-#include "wx/listbox.h"
-#endif
-
 void wxGrid::Create()
 {
     // set to true by CreateGrid
@@ -4421,8 +4418,8 @@ void wxGrid::Init()
 
     m_currentCellCoords = wxGridNoCellCoords;
 
-    m_selectingTopLeft = wxGridNoCellCoords;
-    m_selectingBottomRight = wxGridNoCellCoords;
+    ClearSelection();
+
     m_selectionBackground = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT);
     m_selectionForeground = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT);
 
@@ -5601,23 +5598,26 @@ void wxGrid::ProcessColLabelMouseEvent( wxMouseEvent& event )
         switch ( m_cursorMode )
         {
             case WXGRID_CURSOR_RESIZE_COL:
-            {
                 DoEndDragResizeCol();
 
                 // Note: we are ending the event *after* doing
                 // default processing in this case
                 //
                 SendEvent( wxEVT_GRID_COL_SIZE, -1, m_dragRowOrCol, event );
-            }
-            break;
+                break;
 
             case WXGRID_CURSOR_MOVE_COL:
-            {
                 DoEndDragMoveCol();
 
                 SendEvent( wxEVT_GRID_COL_MOVE, -1, m_dragRowOrCol, event );
-            }
-            break;
+                break;
+
+            case WXGRID_CURSOR_SELECT_COL:
+            case WXGRID_CURSOR_SELECT_CELL:
+            case WXGRID_CURSOR_RESIZE_ROW:
+            case WXGRID_CURSOR_SELECT_ROW:
+                // nothing to do (?)
+                break;
         }
 
         ChangeCursorMode(WXGRID_CURSOR_SELECT_CELL, m_colLabelWin);
@@ -8173,13 +8173,6 @@ void wxGrid::ShowCellEditControl()
                 m_currentCellCoords.SetCol( col );
             }
 
-            // convert to scrolled coords
-            CalcScrolledPosition( rect.x, rect.y, &rect.x, &rect.y );
-
-            int nXMove = 0;
-            if (rect.x < 0)
-                nXMove = rect.x;
-
             // erase the highlight and the cell contents because the editor
             // might not cover the entire cell
             wxClientDC dc( m_gridWin );
@@ -8188,6 +8181,13 @@ void wxGrid::ShowCellEditControl()
             dc.SetPen(*wxTRANSPARENT_PEN);
             dc.DrawRectangle(rect);
 
+            // convert to scrolled coords
+            CalcScrolledPosition( rect.x, rect.y, &rect.x, &rect.y );
+
+            int nXMove = 0;
+            if (rect.x < 0)
+                nXMove = rect.x;
+
             // cell is shifted by one pixel
             // However, don't allow x or y to become negative
             // since the SetSize() method interprets that as
@@ -10793,8 +10793,9 @@ wxArrayInt wxGrid::GetSelectedCols() const
 
 void wxGrid::ClearSelection()
 {
-    m_selectingTopLeft = wxGridNoCellCoords;
-    m_selectingBottomRight = wxGridNoCellCoords;
+    m_selectingTopLeft =
+    m_selectingBottomRight =
+    m_selectingKeyboard = wxGridNoCellCoords;
     if ( m_selection )
         m_selection->ClearSelection();
 }