Correzione alla gestione della force_update
git-svn-id: svn://10.65.10.50/trunk@1896 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
3aa7260c7d
commit
6addcbeceb
@ -1147,9 +1147,10 @@ void TList_sheet::do_output(CheckTime t)
|
||||
{
|
||||
const short id = _fld->atodlg(fld);
|
||||
TMask_field& f = field(id);
|
||||
const char* val = rowsel.get();
|
||||
if (t != STARTING_CHECK || f.field() == NULL)
|
||||
{
|
||||
f.set(rowsel.get());
|
||||
f.set(val);
|
||||
if (field().dlg() != id)
|
||||
f.on_hit();
|
||||
}
|
||||
|
@ -508,7 +508,7 @@ void TSpreadsheet::update_rec(int rec)
|
||||
XI_OBJ row;
|
||||
XI_MAKE_ROW(&row, _list, riga);
|
||||
xi_cell_request(&row); // Update internal values
|
||||
if (rec == selected()/* && _cur_col > 0*/)
|
||||
if (rec == selected())
|
||||
set_focus_cell(riga, _cur_col);
|
||||
}
|
||||
}
|
||||
@ -531,7 +531,7 @@ void TSpreadsheet::set_focus_cell(int riga, int colonna)
|
||||
XI_MAKE_CELL(&cell, _list, riga, colonna);
|
||||
xi_set_focus(&cell);
|
||||
|
||||
if (_edit_field == NULL)
|
||||
if (_edit_field == NULL || r == _cur_rec)
|
||||
{
|
||||
_cur_row = riga;
|
||||
_cur_col = colonna;
|
||||
@ -853,27 +853,31 @@ void TSpreadsheet::list_handler(XI_EVENT *xiev)
|
||||
}
|
||||
break;
|
||||
case XIE_OFF_ROW:
|
||||
if (_row_dirty && _check_enabled)
|
||||
{
|
||||
_check_enabled = FALSE; // Avoid recursion!
|
||||
bool ok = sheet_mask().check_fields();
|
||||
if (ok)
|
||||
{
|
||||
mask2str(_cur_rec); // Update sheet with mask contents
|
||||
ok = notify(_cur_rec, K_ENTER); // Notify edit
|
||||
}
|
||||
if (ok)
|
||||
{
|
||||
xvt_statbar_refresh();
|
||||
_edit_field = NULL; // Reset current field
|
||||
if (_check_enabled)
|
||||
{
|
||||
_check_enabled = FALSE; // Avoid recursion!
|
||||
if (_row_dirty)
|
||||
{
|
||||
TMask_field* old = _edit_field; // Save current field
|
||||
_edit_field = NULL; // Reset current field
|
||||
bool ok = sheet_mask().check_fields();
|
||||
if (ok)
|
||||
{
|
||||
mask2str(_cur_rec); // Update sheet with mask contents
|
||||
ok = notify(_cur_rec, K_ENTER); // Notify edit
|
||||
}
|
||||
if (ok)
|
||||
xvt_statbar_refresh();
|
||||
else
|
||||
{
|
||||
_edit_field = old; // Restore currrent field
|
||||
xiev->refused = TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
xiev->refused = TRUE;
|
||||
|
||||
// Notifica l'abbandono della riga
|
||||
notify(_cur_rec, K_CTRL+K_TAB);
|
||||
_check_enabled = TRUE;
|
||||
}
|
||||
// Notifica l'abbandono della riga
|
||||
notify( _cur_rec, K_CTRL + K_TAB );
|
||||
break;
|
||||
case XIE_ON_CELL:
|
||||
if (_check_enabled)
|
||||
|
Loading…
x
Reference in New Issue
Block a user