loForm = CreateObject('myForm') loForm.Show(1) define class myForm as Form KeyPreview = .f. add object myTimer as Timer with interval = 5000, enabled = .t. * add object myEditBox as EditBox with left = 0, top = 0, width = thisform.Width, height = thisform.Height procedure MouseMove(nButton, nShift, nXCoord, nYCoord) thisform.myTimer.Reset() endproc procedure KeyPress( tnKeyCode, tnShiftAltCtrl) thisform.myTimer.Reset() endproc procedure myTimer.Timer() thisform.Release() endproc * function Init() * BindEvent(thisform.myEditBox, 'MouseMove', thisform, 'MouseMove', 2 + 4) * thisform.KeyPreview = .t. * return .t. * endfunc enddefineUncommenting the myEditBox shows the flaw I mentioned, uncommenting Init shows a possible solution (a true one would be to iterate thru all controls)