From bf4426ac10903d3881315bbb51b10eb7908fc70e Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 18 Jul 2015 00:54:34 +0200 Subject: [PATCH] Don't allow editing "inert" cells in wxDataViewCtrl under OS X. The cell/renderer mode should override the state at the model level, this is how the generic and (probably?) GTK versions behave. Closes #15911. --- src/osx/cocoa/dataview.mm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/osx/cocoa/dataview.mm b/src/osx/cocoa/dataview.mm index 5056b57d35..6b69ebe729 100644 --- a/src/osx/cocoa/dataview.mm +++ b/src/osx/cocoa/dataview.mm @@ -1799,7 +1799,19 @@ outlineView:(NSOutlineView*)outlineView // set the state (enabled/disabled) of the item: this must be done first as // even if we return below because the cell is empty, it still needs to be // disabled if it's not supposed to be enabled - renderer->OSXApplyEnabled(model->IsEnabled(dvItem, colIdx)); + bool enabled = true; + switch ( renderer->GetMode() ) + { + case wxDATAVIEW_CELL_INERT: + enabled = false; + break; + + case wxDATAVIEW_CELL_ACTIVATABLE: + case wxDATAVIEW_CELL_EDITABLE: + enabled = model->IsEnabled(dvItem, colIdx); + break; + } + renderer->OSXApplyEnabled(enabled); // check if we have anything to render wxVariant value;