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);
|
const short id = _fld->atodlg(fld);
|
||||||
TMask_field& f = field(id);
|
TMask_field& f = field(id);
|
||||||
|
const char* val = rowsel.get();
|
||||||
if (t != STARTING_CHECK || f.field() == NULL)
|
if (t != STARTING_CHECK || f.field() == NULL)
|
||||||
{
|
{
|
||||||
f.set(rowsel.get());
|
f.set(val);
|
||||||
if (field().dlg() != id)
|
if (field().dlg() != id)
|
||||||
f.on_hit();
|
f.on_hit();
|
||||||
}
|
}
|
||||||
|
@ -508,7 +508,7 @@ void TSpreadsheet::update_rec(int rec)
|
|||||||
XI_OBJ row;
|
XI_OBJ row;
|
||||||
XI_MAKE_ROW(&row, _list, riga);
|
XI_MAKE_ROW(&row, _list, riga);
|
||||||
xi_cell_request(&row); // Update internal values
|
xi_cell_request(&row); // Update internal values
|
||||||
if (rec == selected()/* && _cur_col > 0*/)
|
if (rec == selected())
|
||||||
set_focus_cell(riga, _cur_col);
|
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_MAKE_CELL(&cell, _list, riga, colonna);
|
||||||
xi_set_focus(&cell);
|
xi_set_focus(&cell);
|
||||||
|
|
||||||
if (_edit_field == NULL)
|
if (_edit_field == NULL || r == _cur_rec)
|
||||||
{
|
{
|
||||||
_cur_row = riga;
|
_cur_row = riga;
|
||||||
_cur_col = colonna;
|
_cur_col = colonna;
|
||||||
@ -853,27 +853,31 @@ void TSpreadsheet::list_handler(XI_EVENT *xiev)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case XIE_OFF_ROW:
|
case XIE_OFF_ROW:
|
||||||
if (_row_dirty && _check_enabled)
|
if (_check_enabled)
|
||||||
{
|
{
|
||||||
_check_enabled = FALSE; // Avoid recursion!
|
_check_enabled = FALSE; // Avoid recursion!
|
||||||
bool ok = sheet_mask().check_fields();
|
if (_row_dirty)
|
||||||
if (ok)
|
|
||||||
{
|
{
|
||||||
mask2str(_cur_rec); // Update sheet with mask contents
|
TMask_field* old = _edit_field; // Save current field
|
||||||
ok = notify(_cur_rec, K_ENTER); // Notify edit
|
_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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (ok)
|
// Notifica l'abbandono della riga
|
||||||
{
|
notify(_cur_rec, K_CTRL+K_TAB);
|
||||||
xvt_statbar_refresh();
|
|
||||||
_edit_field = NULL; // Reset current field
|
|
||||||
}
|
|
||||||
else
|
|
||||||
xiev->refused = TRUE;
|
|
||||||
|
|
||||||
_check_enabled = TRUE;
|
_check_enabled = TRUE;
|
||||||
}
|
}
|
||||||
// Notifica l'abbandono della riga
|
|
||||||
notify( _cur_rec, K_CTRL + K_TAB );
|
|
||||||
break;
|
break;
|
||||||
case XIE_ON_CELL:
|
case XIE_ON_CELL:
|
||||||
if (_check_enabled)
|
if (_check_enabled)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user