]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/grid.cpp
fixed (rare but fatal) bug in wxWindowDisabler
[wxWidgets.git] / src / generic / grid.cpp
index 741a9b7ae2ac0b67b46065867280b6faef02188c..592c3908543c5e606d5e0935e6a19f9d6c55a846 100644 (file)
 #include "wx/grid.h"
 #include "wx/generic/gridsel.h"
 
+#if defined(__WXMOTIF__)
+    #define WXUNUSED_MOTIF(identifier)  WXUNUSED(identifier)
+#else
+    #define WXUNUSED_MOTIF(identifier)  identifier
+#endif
+
+#if defined(__WXGTK__)
+    #define WXUNUSED_GTK(identifier)    WXUNUSED(identifier)
+#else
+    #define WXUNUSED_GTK(identifier)    identifier
+#endif
+
 // Required for wxIs... functions
 #include <ctype.h>
 
@@ -286,6 +298,7 @@ WX_DEFINE_ARRAY(wxGridDataTypeInfo*, wxGridDataTypeInfoArray);
 class WXDLLEXPORT wxGridTypeRegistry
 {
 public:
+  wxGridTypeRegistry() {}
     ~wxGridTypeRegistry();
 
     void RegisterDataType(const wxString& typeName,
@@ -587,7 +600,7 @@ void wxGridCellTextEditor::StartingKey(wxKeyEvent& event)
     if ( !event.AltDown() && !event.MetaDown() && !event.ControlDown() )
     {
         // insert the key in the control
-        long keycode = event.KeyCode();
+        int keycode = (int)event.KeyCode();
         if ( isprint(keycode) )
         {
             // FIXME this is not going to work for non letters...
@@ -606,11 +619,12 @@ void wxGridCellTextEditor::StartingKey(wxKeyEvent& event)
     event.Skip();
 }
 
-void wxGridCellTextEditor::HandleReturn(wxKeyEvent& event)
+void wxGridCellTextEditor::HandleReturn( wxKeyEvent&
+                                         WXUNUSED_GTK(WXUNUSED_MOTIF(event)) )
 {
 #if defined(__WXMOTIF__) || defined(__WXGTK__)
     // wxMotif needs a little extra help...
-    int pos = Text()->GetInsertionPoint();
+    long pos = Text()->GetInsertionPoint();
     wxString s( Text()->GetValue() );
     s = s.Left(pos) + "\n" + s.Mid(pos);
     Text()->SetValue(s);
@@ -699,7 +713,7 @@ void wxGridCellNumberEditor::BeginEdit(int row, int col, wxGrid* grid)
 
     if ( HasRange() )
     {
-        Spin()->SetValue(m_valueOld);
+        Spin()->SetValue((int)m_valueOld);
     }
     else
     {
@@ -738,7 +752,7 @@ void wxGridCellNumberEditor::Reset()
 {
     if ( HasRange() )
     {
-        Spin()->SetValue(m_valueOld);
+        Spin()->SetValue((int)m_valueOld);
     }
     else
     {
@@ -750,7 +764,7 @@ void wxGridCellNumberEditor::StartingKey(wxKeyEvent& event)
 {
     if ( !HasRange() )
     {
-        long keycode = event.KeyCode();
+        int keycode = (int) event.KeyCode();
         if ( isdigit(keycode) || keycode == '+' || keycode == '-' )
         {
             wxGridCellTextEditor::StartingKey(event);
@@ -854,7 +868,7 @@ void wxGridCellFloatEditor::Reset()
 
 void wxGridCellFloatEditor::StartingKey(wxKeyEvent& event)
 {
-    long keycode = event.KeyCode();
+    int keycode = (int)event.KeyCode();
     if ( isdigit(keycode) ||
          keycode == '+' || keycode == '-' || keycode == '.' )
     {
@@ -1173,7 +1187,7 @@ void wxGridCellRenderer::Draw(wxGrid& grid,
                               wxGridCellAttr& attr,
                               wxDC& dc,
                               const wxRect& rect,
-                              int row, int col,
+                              int WXUNUSED(row), int WXUNUSED(col),
                               bool isSelected)
 {
     dc.SetBackgroundMode( wxSOLID );
@@ -2249,7 +2263,8 @@ void wxGridTableBase::UpdateAttrCols( size_t pos, int numCols )
     }
 }
 
-bool wxGridTableBase::InsertRows( size_t pos, size_t numRows )
+bool wxGridTableBase::InsertRows( size_t WXUNUSED(pos),
+                                  size_t WXUNUSED(numRows) )
 {
     wxFAIL_MSG( wxT("Called grid table class function InsertRows\n"
                     "but your derived table class does not override this function") );
@@ -2257,7 +2272,7 @@ bool wxGridTableBase::InsertRows( size_t pos, size_t numRows )
     return FALSE;
 }
 
-bool wxGridTableBase::AppendRows( size_t numRows )
+bool wxGridTableBase::AppendRows( size_t WXUNUSED(numRows) )
 {
     wxFAIL_MSG( wxT("Called grid table class function AppendRows\n"
                     "but your derived table class does not override this function"));
@@ -2265,7 +2280,8 @@ bool wxGridTableBase::AppendRows( size_t numRows )
     return FALSE;
 }
 
-bool wxGridTableBase::DeleteRows( size_t pos, size_t numRows )
+bool wxGridTableBase::DeleteRows( size_t WXUNUSED(pos),
+                                  size_t WXUNUSED(numRows) )
 {
     wxFAIL_MSG( wxT("Called grid table class function DeleteRows\n"
                     "but your derived table class does not override this function"));
@@ -2273,7 +2289,8 @@ bool wxGridTableBase::DeleteRows( size_t pos, size_t numRows )
     return FALSE;
 }
 
-bool wxGridTableBase::InsertCols( size_t pos, size_t numCols )
+bool wxGridTableBase::InsertCols( size_t WXUNUSED(pos),
+                                  size_t WXUNUSED(numCols) )
 {
     wxFAIL_MSG( wxT("Called grid table class function InsertCols\n"
                   "but your derived table class does not override this function"));
@@ -2281,7 +2298,7 @@ bool wxGridTableBase::InsertCols( size_t pos, size_t numCols )
     return FALSE;
 }
 
-bool wxGridTableBase::AppendCols( size_t numCols )
+bool wxGridTableBase::AppendCols( size_t WXUNUSED(numCols) )
 {
     wxFAIL_MSG(wxT("Called grid table class function AppendCols\n"
                    "but your derived table class does not override this function"));
@@ -2289,7 +2306,8 @@ bool wxGridTableBase::AppendCols( size_t numCols )
     return FALSE;
 }
 
-bool wxGridTableBase::DeleteCols( size_t pos, size_t numCols )
+bool wxGridTableBase::DeleteCols( size_t WXUNUSED(pos),
+                                  size_t WXUNUSED(numCols) )
 {
     wxFAIL_MSG( wxT("Called grid table class function DeleteCols\n"
                     "but your derived table class does not override this function"));
@@ -2456,12 +2474,12 @@ wxGridStringTable::~wxGridStringTable()
 {
 }
 
-long wxGridStringTable::GetNumberRows()
+int wxGridStringTable::GetNumberRows()
 {
     return m_data.GetCount();
 }
 
-long wxGridStringTable::GetNumberCols()
+int wxGridStringTable::GetNumberCols()
 {
     if ( m_data.GetCount() > 0 )
         return m_data[0].GetCount();
@@ -2827,7 +2845,7 @@ wxGridRowLabelWindow::wxGridRowLabelWindow( wxGrid *parent,
     m_owner = parent;
 }
 
-void wxGridRowLabelWindow::OnPaint( wxPaintEvent &event )
+void wxGridRowLabelWindow::OnPaint( wxPaintEvent& WXUNUSED(event) )
 {
     wxPaintDC dc(this);
 
@@ -2880,7 +2898,7 @@ wxGridColLabelWindow::wxGridColLabelWindow( wxGrid *parent,
     m_owner = parent;
 }
 
-void wxGridColLabelWindow::OnPaint( wxPaintEvent &event )
+void wxGridColLabelWindow::OnPaint( wxPaintEvent& WXUNUSED(event) )
 {
     wxPaintDC dc(this);
 
@@ -3034,7 +3052,7 @@ void wxGridWindow::OnKeyDown( wxKeyEvent& event )
 }
 
 
-void wxGridWindow::OnEraseBackground(wxEraseEvent& event)
+void wxGridWindow::OnEraseBackground( wxEraseEvent& WXUNUSED(event) )
 {
 }
 
@@ -3803,10 +3821,13 @@ void wxGrid::ProcessRowLabelMouseEvent( wxMouseEvent& event )
                 break;
 
                 case WXGRID_CURSOR_SELECT_ROW:
-                    if ( (row = YToRow( y )) >= 0  &&
-                         !IsInSelection( row, 0 ) )
+                    if ( (row = YToRow( y )) >= 0 )
                     {
-                        SelectRow( row, TRUE );
+                        m_selection->SelectRow( row,
+                                                event.ControlDown(),
+                                                event.ShiftDown(),
+                                                event.AltDown(),
+                                                event.MetaDown() );
                     }
 
                 // default label to suppress warnings about "enumeration value
@@ -3843,7 +3864,23 @@ void wxGrid::ProcessRowLabelMouseEvent( wxMouseEvent& event )
             if ( row >= 0  &&
                  !SendEvent( wxEVT_GRID_LABEL_LEFT_CLICK, row, -1, event ) )
             {
-                SelectRow( row, event.ShiftDown() );
+                if ( !event.ShiftDown() && !event.ControlDown() )
+                    ClearSelection();
+                if ( event.ShiftDown() )
+                    m_selection->SelectBlock( m_currentCellCoords.GetRow(),
+                                              0,
+                                              row,
+                                              GetNumberCols() - 1,
+                                              event.ControlDown(),
+                                              event.ShiftDown(),
+                                              event.AltDown(),
+                                              event.MetaDown() );
+                else
+                    m_selection->SelectRow( row,
+                                            event.ControlDown(),
+                                            event.ShiftDown(),
+                                            event.AltDown(),
+                                            event.MetaDown() );
                 ChangeCursorMode(WXGRID_CURSOR_SELECT_ROW, m_rowLabelWin);
             }
         }
@@ -3970,10 +4007,13 @@ void wxGrid::ProcessColLabelMouseEvent( wxMouseEvent& event )
                 break;
 
                 case WXGRID_CURSOR_SELECT_COL:
-                    if ( (col = XToCol( x )) >= 0  &&
-                         !IsInSelection( 0, col ) )
+                    if ( (col = XToCol( x )) >= 0 )
                     {
-                        SelectCol( col, TRUE );
+                        m_selection->SelectCol( col,
+                                                event.ControlDown(),
+                                                event.ShiftDown(),
+                                                event.AltDown(),
+                                                event.MetaDown() );
                     }
 
                 // default label to suppress warnings about "enumeration value
@@ -4010,7 +4050,22 @@ void wxGrid::ProcessColLabelMouseEvent( wxMouseEvent& event )
             if ( col >= 0  &&
                  !SendEvent( wxEVT_GRID_LABEL_LEFT_CLICK, -1, col, event ) )
             {
-                SelectCol( col, event.ShiftDown() );
+                if ( !event.ShiftDown() && !event.ControlDown() )
+                    ClearSelection();
+                if ( event.ShiftDown() )
+                    m_selection->SelectBlock( 0,
+                                              m_currentCellCoords.GetCol(),
+                                              GetNumberRows() - 1, col,
+                                              event.ControlDown(),
+                                              event.ShiftDown(),
+                                              event.AltDown(),
+                                              event.MetaDown() );
+                else
+                    m_selection->SelectCol( col,
+                                            event.ControlDown(),
+                                            event.ShiftDown(),
+                                            event.AltDown(),
+                                            event.MetaDown() );
                 ChangeCursorMode(WXGRID_CURSOR_SELECT_COL, m_colLabelWin);
             }
         }
@@ -4246,29 +4301,29 @@ void wxGrid::ProcessGridCellMouseEvent( wxMouseEvent& event )
 
             if ( coords != wxGridNoCellCoords )
             {
-               if ( event.ControlDown() )
-               {
-                   if ( m_selectingKeyboard == wxGridNoCellCoords)
-                       m_selectingKeyboard = coords;
-                   SelectBlock ( m_selectingKeyboard, coords );
-               }
-               else
-               {
-                   if ( !IsSelection() )
-                   {
-                       SelectBlock( coords, coords );
-                   }
-                   else
-                   {
-                       SelectBlock( m_currentCellCoords, coords );
-                   }
+                if ( event.ControlDown() )
+                {
+                    if ( m_selectingKeyboard == wxGridNoCellCoords)
+                        m_selectingKeyboard = coords;
+                    SelectBlock ( m_selectingKeyboard, coords );
+                }
+                else
+                {
+                    if ( !IsSelection() )
+                    {
+                        SelectBlock( coords, coords );
+                    }
+                    else
+                    {
+                        SelectBlock( m_currentCellCoords, coords );
+                    }
                 }
 
                 if (! IsVisible(coords))
                 {
                     MakeCellVisible(coords);
                     // TODO: need to introduce a delay or something here.  The
-                    // scrolling is way to fast, at least on MSW.
+                    // scrolling is way to fast, at least on MSW - also on GTK.
                 }
             }
         }
@@ -4375,20 +4430,20 @@ void wxGrid::ProcessGridCellMouseEvent( wxMouseEvent& event )
                 }
                 else
                 {
-                   if ( event.ControlDown() )
-                   {
-                       m_selection->ToggleCellSelection( coords.GetRow(),
-                                                         coords.GetCol(),
-                                                         event.ControlDown(),
-                                                         event.ShiftDown(),
-                                                         event.AltDown(),
-                                                         event.MetaDown() );
-                       m_selectingTopLeft = wxGridNoCellCoords;
-                       m_selectingBottomRight = wxGridNoCellCoords;
-                       m_selectingKeyboard = coords;
-                   }
-                   else
-                       SetCurrentCell( coords );
+                    if ( event.ControlDown() )
+                    {
+                        m_selection->ToggleCellSelection( coords.GetRow(),
+                                                          coords.GetCol(),
+                                                          event.ControlDown(),
+                                                          event.ShiftDown(),
+                                                          event.AltDown(),
+                                                          event.MetaDown() );
+                        m_selectingTopLeft = wxGridNoCellCoords;
+                        m_selectingBottomRight = wxGridNoCellCoords;
+                        m_selectingKeyboard = coords;
+                    }
+                    else
+                        SetCurrentCell( coords );
                     m_waitForSlowClick = TRUE;
                 }
             }
@@ -5000,7 +5055,7 @@ void wxGrid::OnPaint( wxPaintEvent& WXUNUSED(event) )
 // the grid view is resized... then the size event is skipped to allow
 // the box sizers to handle everything
 //
-void wxGrid::OnSize( wxSizeEvent& event )
+void wxGrid::OnSize( wxSizeEvent& WXUNUSED(event) )
 {
     CalcWindowSizes();
     CalcDimensions();
@@ -5032,16 +5087,16 @@ void wxGrid::OnKeyDown( wxKeyEvent& event )
         if ( !event.ShiftDown() && 
              m_selectingKeyboard != wxGridNoCellCoords )
         {
-           if ( m_selectingTopLeft != wxGridNoCellCoords &&
-                m_selectingBottomRight != wxGridNoCellCoords )
-               m_selection->SelectBlock( m_selectingTopLeft.GetRow(),
-                                         m_selectingTopLeft.GetCol(),
-                                         m_selectingBottomRight.GetRow(),
-                                         m_selectingBottomRight.GetCol(),
-                                         event.ControlDown(),
-                                         event.ShiftDown(),
-                                         event.AltDown(),
-                                         event.MetaDown() );
+            if ( m_selectingTopLeft != wxGridNoCellCoords &&
+                 m_selectingBottomRight != wxGridNoCellCoords )
+                m_selection->SelectBlock( m_selectingTopLeft.GetRow(),
+                                          m_selectingTopLeft.GetCol(),
+                                          m_selectingBottomRight.GetRow(),
+                                          m_selectingBottomRight.GetCol(),
+                                          event.ControlDown(),
+                                          event.ShiftDown(),
+                                          event.AltDown(),
+                                          event.MetaDown() );
             m_selectingTopLeft = wxGridNoCellCoords;
             m_selectingBottomRight = wxGridNoCellCoords;
             m_selectingKeyboard = wxGridNoCellCoords;
@@ -5105,7 +5160,7 @@ void wxGrid::OnKeyDown( wxKeyEvent& event )
                 break;
 
             case WXK_ESCAPE:
-                m_selection->ClearSelection();
+                ClearSelection();
                 break;
 
             case WXK_TAB:
@@ -5148,16 +5203,16 @@ void wxGrid::OnKeyDown( wxKeyEvent& event )
                 break;
 
             case WXK_SPACE:
-               if ( event.ControlDown() )
-               {
-                   m_selection->ToggleCellSelection( m_currentCellCoords.GetRow(),
-                                                     m_currentCellCoords.GetCol(),
-                                                     event.ControlDown(),
-                                                     event.ShiftDown(),
-                                                     event.AltDown(),
-                                                     event.MetaDown() );
-                   break;
-               }
+                if ( event.ControlDown() )
+                {
+                    m_selection->ToggleCellSelection( m_currentCellCoords.GetRow(),
+                                                      m_currentCellCoords.GetCol(),
+                                                      event.ControlDown(),
+                                                      event.ShiftDown(),
+                                                      event.AltDown(),
+                                                      event.MetaDown() );
+                    break;
+                }
                 if ( !IsEditable() )
                 {
                     MoveCursorRight( FALSE );
@@ -5174,7 +5229,7 @@ void wxGrid::OnKeyDown( wxKeyEvent& event )
                 if ( !(event.AltDown() ||
                        event.MetaDown() ||
                        event.ControlDown()) &&
-                     ((isalnum(event.KeyCode()) &&
+                     ((isalnum((int)event.KeyCode()) &&
                        (event.KeyCode() < 256 && event.KeyCode() >= 0)) ||
                       event.KeyCode() == WXK_F2) &&
                      !IsCellEditControlEnabled() &&
@@ -5478,7 +5533,7 @@ void wxGrid::DrawHighlight(wxDC& dc)
 // This is used to redraw all grid lines e.g. when the grid line colour
 // has been changed
 //
-void wxGrid::DrawAllGridLines( wxDC& dc, const wxRegion & reg )
+void wxGrid::DrawAllGridLines( wxDC& dc, const wxRegion & WXUNUSED_GTK(reg) )
 {
     if ( !m_gridLinesEnabled ||
          !m_numRows ||
@@ -5708,7 +5763,7 @@ void wxGrid::DrawTextRectangle( wxDC& dc,
 
         for ( size_t i = 0;  i < lines.GetCount();  i++ )
         {
-            dc.DrawText( lines[i], (long)x, (long)y );
+            dc.DrawText( lines[i], (int)x, (int)y );
             y += lineHeight;
         }
     }
@@ -6184,18 +6239,18 @@ bool wxGrid::MoveCursorUp( bool expandSelection )
             if ( m_selectingKeyboard == wxGridNoCellCoords )
                 m_selectingKeyboard = m_currentCellCoords;
             m_selectingKeyboard.SetRow( m_selectingKeyboard.GetRow() - 1 );
-           MakeCellVisible( m_selectingKeyboard.GetRow(),
-                            m_selectingKeyboard.GetCol() );
+            MakeCellVisible( m_selectingKeyboard.GetRow(),
+                             m_selectingKeyboard.GetCol() );
             SelectBlock( m_currentCellCoords, m_selectingKeyboard );
         }
         else
-       {
-           ClearSelection();
-           MakeCellVisible( m_currentCellCoords.GetRow() - 1,
-                            m_currentCellCoords.GetCol() );
+        {
+            ClearSelection();
+            MakeCellVisible( m_currentCellCoords.GetRow() - 1,
+                             m_currentCellCoords.GetCol() );
             SetCurrentCell( m_currentCellCoords.GetRow() - 1,
                             m_currentCellCoords.GetCol() );
-       }
+        }
         return TRUE;
     }
 
@@ -6213,18 +6268,18 @@ bool wxGrid::MoveCursorDown( bool expandSelection )
             if ( m_selectingKeyboard == wxGridNoCellCoords )
                 m_selectingKeyboard = m_currentCellCoords;
             m_selectingKeyboard.SetRow( m_selectingKeyboard.GetRow() + 1 );
-           MakeCellVisible( m_selectingKeyboard.GetRow(),
-                            m_selectingKeyboard.GetCol() );
+            MakeCellVisible( m_selectingKeyboard.GetRow(),
+                             m_selectingKeyboard.GetCol() );
             SelectBlock( m_currentCellCoords, m_selectingKeyboard );
         }
         else
-       {
-           ClearSelection();
-           MakeCellVisible( m_currentCellCoords.GetRow() + 1,
-                            m_currentCellCoords.GetCol() );
+        {
+            ClearSelection();
+            MakeCellVisible( m_currentCellCoords.GetRow() + 1,
+                             m_currentCellCoords.GetCol() );
             SetCurrentCell( m_currentCellCoords.GetRow() + 1,
                             m_currentCellCoords.GetCol() );
-       }
+        }
         return TRUE;
     }
 
@@ -6242,18 +6297,18 @@ bool wxGrid::MoveCursorLeft( bool expandSelection )
             if ( m_selectingKeyboard == wxGridNoCellCoords )
                 m_selectingKeyboard = m_currentCellCoords;
             m_selectingKeyboard.SetCol( m_selectingKeyboard.GetCol() - 1 );
-           MakeCellVisible( m_selectingKeyboard.GetRow(),
-                            m_selectingKeyboard.GetCol() );
+            MakeCellVisible( m_selectingKeyboard.GetRow(),
+                             m_selectingKeyboard.GetCol() );
             SelectBlock( m_currentCellCoords, m_selectingKeyboard );
         }
         else
-       {
-           ClearSelection();
-           MakeCellVisible( m_currentCellCoords.GetRow(),
-                            m_currentCellCoords.GetCol() - 1 );
+        {
+            ClearSelection();
+            MakeCellVisible( m_currentCellCoords.GetRow(),
+                             m_currentCellCoords.GetCol() - 1 );
             SetCurrentCell( m_currentCellCoords.GetRow(),
                             m_currentCellCoords.GetCol() - 1 );
-       }
+        }
         return TRUE;
     }
 
@@ -6271,18 +6326,18 @@ bool wxGrid::MoveCursorRight( bool expandSelection )
             if ( m_selectingKeyboard == wxGridNoCellCoords )
                 m_selectingKeyboard = m_currentCellCoords;
             m_selectingKeyboard.SetCol( m_selectingKeyboard.GetCol() + 1 );
-           MakeCellVisible( m_selectingKeyboard.GetRow(),
-                            m_selectingKeyboard.GetCol() );
+            MakeCellVisible( m_selectingKeyboard.GetRow(),
+                             m_selectingKeyboard.GetCol() );
             SelectBlock( m_currentCellCoords, m_selectingKeyboard );
         }
         else
-       {
-           ClearSelection();
-           MakeCellVisible( m_currentCellCoords.GetRow(),
-                            m_currentCellCoords.GetCol() + 1 );
-           SetCurrentCell( m_currentCellCoords.GetRow(),
+        {
+            ClearSelection();
+            MakeCellVisible( m_currentCellCoords.GetRow(),
+                             m_currentCellCoords.GetCol() + 1 );
+            SetCurrentCell( m_currentCellCoords.GetRow(),
                             m_currentCellCoords.GetCol() + 1 );
-       }
+        }
         return TRUE;
     }
 
@@ -6403,10 +6458,10 @@ bool wxGrid::MoveCursorUpBlock( bool expandSelection )
             SelectBlock( m_currentCellCoords, m_selectingKeyboard );
         }
         else
-       {
-           ClearSelection();
-           SetCurrentCell( row, col );
-       }
+        {
+            ClearSelection();
+            SetCurrentCell( row, col );
+        }
         return TRUE;
     }
 
@@ -6466,10 +6521,10 @@ bool wxGrid::MoveCursorDownBlock( bool expandSelection )
             SelectBlock( m_currentCellCoords, m_selectingKeyboard );
         }
         else
-       {
-           ClearSelection();
-           SetCurrentCell( row, col );
-       }
+        {
+            ClearSelection();
+            SetCurrentCell( row, col );
+        }
 
         return TRUE;
     }
@@ -6530,10 +6585,10 @@ bool wxGrid::MoveCursorLeftBlock( bool expandSelection )
             SelectBlock( m_currentCellCoords, m_selectingKeyboard );
         }
         else
-       {
-           ClearSelection();
-           SetCurrentCell( row, col );
-       }
+        {
+            ClearSelection();
+            SetCurrentCell( row, col );
+        }
 
         return TRUE;
     }
@@ -6594,10 +6649,10 @@ bool wxGrid::MoveCursorRightBlock( bool expandSelection )
             SelectBlock( m_currentCellCoords, m_selectingKeyboard );
         }
         else
-       {
-           ClearSelection();
-           SetCurrentCell( row, col );
-       }
+        {
+            ClearSelection();
+            SetCurrentCell( row, col );
+        }
 
         return TRUE;
     }
@@ -7585,7 +7640,7 @@ void wxGrid::SetCellValue( int row, int col, const wxString& s )
 void wxGrid::SelectRow( int row, bool addToSelected )
 {
     if ( IsSelection() && !addToSelected )
-        m_selection->ClearSelection();
+        ClearSelection();
 
     m_selection->SelectRow( row );
 }
@@ -7594,7 +7649,7 @@ void wxGrid::SelectRow( int row, bool addToSelected )
 void wxGrid::SelectCol( int col, bool addToSelected )
 {
     if ( IsSelection() && !addToSelected )
-        m_selection->ClearSelection();
+        ClearSelection();
 
     m_selection->SelectCol( col );
 }