code: def OnUndo(self, event):
          
  
          statustext = undo.stack().undotext()
          undo.stack().undo()
  
          # Update content changed state
          try:
              post_command_event(self.grid.main_window,
                                 self.grid.ContentChangedMsg)
          except TypeError:
              # The main window does not exist any more
              pass
  
          self.grid.code_array.result_cache.clear()
  
          post_command_event(self.grid.main_window, self.grid.TableChangedMsg,
                             updated_cell=True)
  
          # Reset row heights and column widths by zooming
          self.grid.actions.zoom()
  
          # Change grid table dimensions
          self.grid.GetTable().ResetView()
  
          # Update TableChoiceIntCtrl
          shape = self.grid.code_array.shape
          post_command_event(self.main_window, self.grid.ResizeGridMsg,
                             shape=shape)
  
          # Update toolbars
          self.grid.update_entry_line()
          self.grid.update_attribute_toolbar()
  
          post_command_event(self.grid.main_window, self.grid.StatusBarMsg,
                             text=statustext)
docs: Calls the grid undo method