diff --git a/include/maskfld.cpp b/include/maskfld.cpp index 695c2fbf1..667ef7440 100755 --- a/include/maskfld.cpp +++ b/include/maskfld.cpp @@ -4126,15 +4126,15 @@ bool TDate_field::on_key(KEY key) if (key == K_F9 && browse() == NULL) { RCT rct; get_rect(rct); - const PNT pos = { rct.top, rct.right }; TDate olddate; const TString& data = get_window_data(); if (TDate::isdate(data)) olddate = TDate(data); - long ansidate = olddate.date2ansi(); - ansidate = xvt_dm_post_choose_date(parent(), pos, ansidate); + + ansidate = xvt_dm_post_choose_date(parent(), &rct, ansidate); + const TDate newdate(ansidate); if (newdate != olddate) set(newdate.string()); @@ -4142,7 +4142,7 @@ bool TDate_field::on_key(KEY key) } if (_ctl->is_edit_key(key)) { - const bool ok = strchr("-0123456789ADEGILMNOPRSTUadegilmnoprstu", key) != NULL; + const bool ok = isalnum(key) || key == '-'; if (!ok) beep(); return ok; }