Patch level : 10.0 70

Files correlati     : ba3.exe
Ricompilazione Demo : [ ]
Commento           :

Corretta la gestione del focus dopo registra sulle relapp


git-svn-id: svn://10.65.10.50/trunk@16793 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2008-06-20 10:00:16 +00:00
parent bed3ea36ef
commit a3e4a6db73
3 changed files with 8 additions and 4 deletions

View File

@ -315,9 +315,10 @@ int TMask::find_first_active(WINDOW p) const
return -1; return -1;
} }
int TMask::first_focus(short id) int TMask::first_focus(short id, bool dirty)
{ {
static int tempfirstfocus = -1; static int tempfirstfocus = -1;
static bool tempdirty = false;
int f = _first_focus; int f = _first_focus;
if (id == 0) if (id == 0)
@ -325,7 +326,7 @@ int TMask::first_focus(short id)
if (tempfirstfocus >= 0) if (tempfirstfocus >= 0)
{ {
f = tempfirstfocus; f = tempfirstfocus;
if (fld(f).dirty() == false) if (tempdirty && fld(f).dirty() == false)
fld(f).set_dirty(); fld(f).set_dirty();
tempfirstfocus = -1; tempfirstfocus = -1;
} }
@ -347,7 +348,10 @@ int TMask::first_focus(short id)
tempfirstfocus = -1; tempfirstfocus = -1;
} }
else else
{
f = tempfirstfocus = id2pos(-id); f = tempfirstfocus = id2pos(-id);
tempdirty = dirty;
}
} }
CHECKD(f >= 0 && f < fields(), "Invalid focus field ", f); CHECKD(f >= 0 && f < fields(), "Invalid focus field ", f);

View File

@ -309,7 +309,7 @@ public:
// @cmember Ritorna il contenuto del primo campo attivo campo che ha come FIELD <p fld_id> // @cmember Ritorna il contenuto del primo campo attivo campo che ha come FIELD <p fld_id>
const TString& get(const char * fld_id) const; const TString& get(const char * fld_id) const;
// @cmember Indica quale campo deve ricevere per primo il focus nella maschera // @cmember Indica quale campo deve ricevere per primo il focus nella maschera
int first_focus(short id); int first_focus(short id, bool dirty = true);
// @cmember Ritorna il numero del controllo che possiede il focus // @cmember Ritorna il numero del controllo che possiede il focus
TOperable_field& focus_field() const; TOperable_field& focus_field() const;

View File

@ -1377,7 +1377,7 @@ void TRelation_application::main_loop()
{ {
const TMask_field & f = _mask->focus_field(); const TMask_field & f = _mask->focus_field();
_mask->first_focus(-f.dlg()); _mask->first_focus(-f.dlg(), false);
modify_mode(); modify_mode();
} }
} }