diff --git a/common/tablemodel.c b/common/tablemodel.c index dbda4a814..7fc9c215d 100644 --- a/common/tablemodel.c +++ b/common/tablemodel.c @@ -41,6 +41,8 @@ void uiprivTableModelSetCellValue(uiTableModel *m, int row, int column, const ui mh = uiprivTableModelHandler(m); (*(mh->SetCellValue))(mh, m, row, column, value); + + uiTableModelRowChanged(m, row); } const uiTableTextColumnOptionalParams uiprivDefaultTextColumnOptionalParams = { diff --git a/darwin/tablecolumn.m b/darwin/tablecolumn.m index 5038cc6bd..032ee7110 100644 --- a/darwin/tablecolumn.m +++ b/darwin/tablecolumn.m @@ -292,9 +292,6 @@ - (IBAction)uiprivOnTextFieldAction:(id)sender value = uiNewTableValueString([[self->tf stringValue] UTF8String]); uiprivTableModelSetCellValue(self->m, row, self->textModelColumn, value); uiFreeTableValue(value); - // always refresh the value in case the model rejected it - // TODO document that we do this, but not for the whole row (or decide to do both, or do neither...) - [self uiprivUpdate:row]; } - (IBAction)uiprivOnCheckboxAction:(id)sender @@ -306,8 +303,6 @@ - (IBAction)uiprivOnCheckboxAction:(id)sender value = uiNewTableValueInt([self->cb state] != NSOffState); uiprivTableModelSetCellValue(self->m, row, self->checkboxModelColumn, value); uiFreeTableValue(value); - // always refresh the value in case the model rejected it - [self uiprivUpdate:row]; } @end @@ -539,8 +534,6 @@ - (IBAction)uiprivOnClicked:(id)sender row = [self->t->tv rowForView:self->b]; uiprivTableModelSetCellValue(self->m, row, self->modelColumn, NULL); - // TODO document we DON'T update the cell after doing this - // TODO or decide what to do instead } @end diff --git a/windows/tableediting.cpp b/windows/tableediting.cpp index 7bbb450c2..281d1370a 100644 --- a/windows/tableediting.cpp +++ b/windows/tableediting.cpp @@ -168,11 +168,6 @@ HRESULT uiprivTableFinishEditingText(uiTable *t) p = (*(t->columns))[t->editedSubitem]; uiprivTableModelSetCellValue(t->model, t->editedItem, p->textModelColumn, value); uiFreeTableValue(value); - // always refresh the value in case the model rejected it - if (SendMessageW(t->hwnd, LVM_UPDATE, (WPARAM) (t->editedItem), 0) == (LRESULT) (-1)) { - logLastError(L"LVM_UPDATE"); - return E_FAIL; - } return uiprivTableAbortEditingText(t); } @@ -250,11 +245,6 @@ HRESULT uiprivTableHandleNM_CLICK(uiTable *t, NMITEMACTIVATE *nm, LRESULT *lResu uiFreeTableValue(value); } else uiprivTableModelSetCellValue(t->model, ht.iItem, modelColumn, NULL); - // always refresh the value in case the model rejected it - if (SendMessageW(t->hwnd, LVM_UPDATE, (WPARAM) (ht.iItem), 0) == (LRESULT) (-1)) { - logLastError(L"LVM_UPDATE"); - return E_FAIL; - } done: *lResult = 0;