#----------------------------------------------------------------------------
-# Name:        wxPython.lib.mixins.grid
-# Purpose:     Helpful mix-in classes for wxGrid
+# Name:        wx.lib.mixins.grid
+# Purpose:     Helpful mix-in classes for wx.Grid
 #
 # Author:      Robin Dunn
 #
 # o 2.5 compatability update.
 # o Untested
 #
+# 12/21/2003 - Jeff Grimmett (grimmtooth@softhome.net)
+#
+# o wxGridAutoEditMixin -> GridAutoEditMixin
+#
 
 import  wx
 import  wx.grid
 #----------------------------------------------------------------------------
 
 
-class wxGridAutoEditMixin:
+class GridAutoEditMixin:
     """A mix-in class that automatically enables the grid edit control when
     a cell is selected.
 
     """
 
     def __init__(self):
-        self.__enableEdit = 0
-        self.Bind(wx.EVT_IDLE, self.__OnIdle)
         self.Bind(wx.grid.EVT_GRID_SELECT_CELL, self.__OnSelectCell)
 
 
-    def __OnIdle(self, evt):
-        if self.__enableEdit:
-            if self.CanEnableCellControl():
-                self.EnableCellEditControl()
-            self.__enableEdit = 0
-        evt.Skip()
+    def __DoEnableEdit(self):
+        if self.CanEnableCellControl():
+            self.EnableCellEditControl()
 
 
     def __OnSelectCell(self, evt):
-        self.__enableEdit = 1
+        wx.CallAfter(self.__DoEnableEdit)
         evt.Skip()