X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/23a023642cc8975a88ae02953a15234c4f4d1ee5..bd2903e1c321d5890bfe00266b7992803e24428d:/wxPython/wx/lib/mixins/listctrl.py diff --git a/wxPython/wx/lib/mixins/listctrl.py b/wxPython/wx/lib/mixins/listctrl.py index 71504759da..c649396f72 100644 --- a/wxPython/wx/lib/mixins/listctrl.py +++ b/wxPython/wx/lib/mixins/listctrl.py @@ -522,6 +522,19 @@ class TextEditMixin: def OpenEditor(self, col, row): ''' Opens an editor at the current position. ''' + # give the derived class a chance to Allow/Veto this edit. + evt = wx.ListEvent(wx.wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, self.GetId()) + evt.m_itemIndex = row + evt.m_col = col + item = self.GetItem(row, col) + evt.m_item.SetId(item.GetId()) + evt.m_item.SetColumn(item.GetColumn()) + evt.m_item.SetData(item.GetData()) + evt.m_item.SetText(item.GetText()) + ret = self.GetEventHandler().ProcessEvent(evt) + if ret and not evt.IsAllowed(): + return # user code doesn't allow the edit. + if self.GetColumn(col).m_format != self.col_style: self.make_editor(self.GetColumn(col).m_format) @@ -574,6 +587,8 @@ class TextEditMixin: # it is binded to wx.EVT_KILL_FOCUS. Can it be avoided? (MW) def CloseEditor(self, evt=None): ''' Close the editor and save the new value to the ListCtrl. ''' + if not self.editor.IsShown(): + return text = self.editor.GetValue() self.editor.Hide() self.SetFocus()