diff --git a/include/maskfld.cpp b/include/maskfld.cpp index b3c437165..b6d4eca54 100755 --- a/include/maskfld.cpp +++ b/include/maskfld.cpp @@ -374,18 +374,19 @@ void TMask_field::construct(TScanner& scanner, WINDOW parent) scanner.popkey(); // BEGIN #ifdef DBG + const TMask& m = mask(); + if (scanner.key() != "BE") { - NFCHECK("Testata errata o BEGIN mancante nel campo %d", _ctl_data._dlg); + NFCHECK("Testata errata o BEGIN mancante nel campo %d della maschera", + _ctl_data._dlg, (const char*)m.source_file()); scanner.push(); } if (_ctl_data._dlg > 0) { - const TMask& m = mask(); - for (int f = m.fields()-1; f >= 0; f--) + FOR_EACH_MASK_FIELD(m, i, mf) { - const TMask_field& mf = m.fld(f); - if (mf.dlg() == _ctl_data._dlg && mf.parent() == parent) + if (mf->dlg() == _ctl_data._dlg && mf->parent() == parent) NFCHECK("Esistono due campi con identificatore %d", _ctl_data._dlg); } } diff --git a/include/msksheet.cpp b/include/msksheet.cpp index 5c389818e..04e607fbd 100755 --- a/include/msksheet.cpp +++ b/include/msksheet.cpp @@ -1267,7 +1267,7 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev) case XIE_SELECT: if (xiev->v.xi_obj->type == XIT_ROW) { - _check_enabled = FALSE; + _check_enabled = false; refused = TRUE; if (!test_focus_change()) @@ -1309,33 +1309,33 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev) } else { - TMask & sm = owner().sheet_mask(); + TMask& sm = owner().sheet_mask(); const int button_pos = sm.id2pos(FIRST_FIELD-1); if (button_pos >= 0) { TMask_field& button = sm.fld(button_pos); if (button.active()) { + button.disable(); // Impedisce che un doppio click indesiderato abbia effetto if (!_row_dirty) { notify_change(); _row_dirty = _cell_dirty = FALSE; - for (int i = sm.fields() - 1; i >= 0; i--) - sm.fld(i).set_dirty(FALSE); - } - + FOR_EACH_MASK_FIELD(sm, i, fld) + fld->set_dirty(false); + } button.on_hit(); if (sm.dirty()) { _row_dirty = TRUE; mask2str(_cur_rec); } - + button.enable(); } owner().highlight(); } } - _check_enabled = TRUE; + _check_enabled = true; } break; case XIE_DBL_CELL: