This looks like HandleEvent of the dialog is not involved. It's inside the event loop.
What you are saying is true, but the error is a "secondary fault" which is caused by the system generating an event on what should have been a disabled window. That's why I agreed with Till on insuring that any such event should not be processed. Maybe I am returning a wrong value and it should not be a nil that is returned by ::handleEvent.
I could put a trap down in the routine that causes the error and force a break, but the band-aid should be at a higher level. What frustrates me is the fact that I have no way of testing this because I can not reproduce the error. If someone would give me access to a more current version of a terminal server, I could have a fix very quickly.
I hate putting fixes in my code like this. I did this once or twice for Cliff Wiernik, as you may recall, and that was a big mistake. I'm going to suggest one more change to DC_XbpDialog1:handleEvent and if that doesn't fix the problem, then I will put a trap in the DC_Getlist class to break out of the error. I just realized that there is probably no reason to process any events on a dialog that is not enabled, so let's try this first.
Code: Select all
METHOD DC_XbpDialog1:handleEvent( nEvent, mp1, mp2 )
IF !::isEnabled()
RETURN self
ENDIF
RETURN ::XbpDialog:handleEvent( nEvent, mp1, mp2 )