Deletes selection, marks content as changed

        If selection is None then the current grid selection is used.

        Parameters
        ----------

        selection: Selection, defaults to None
        \tSelection that shall be deleted

def delete_selection(self, selection=None):
        """Deletes selection, marks content as changed

        If selection is None then the current grid selection is used.

        Parameters
        ----------

        selection: Selection, defaults to None
        \tSelection that shall be deleted

        """

        # Mark content as changed
        post_command_event(self.main_window, self.ContentChangedMsg)

        if selection is None:
            selection = self.get_selection()

        current_table = self.grid.current_table

        for row, col, tab in self.grid.code_array.dict_grid.keys():
            if tab == current_table and (row, col) in selection:
                self.grid.actions.delete_cell((row, col, tab))

        self.grid.code_array.result_cache.clear()