On 08/16/2009 03:22 PM, Daniël Mantione wrote:
Op Sun, 16 Aug 2009, schreef Jonas Maebe:
On 16 Aug 2009, at 12:15, Nikolay Nikolov wrote:
Does anyone have an idea why the call to DoneKeyboard was previously
commented? It leaves the keyboard in a bad state if the IDE crashes.
It was changed in revision 3443, whose log message says:
r3443 | daniel | 2006-05-07 00:57:20 +0200 (Sun, 07 May 2006) | 3 lines
Changed paths:
M /trunk/fv/app.pas
M /trunk/fv/drivers.pas
M /trunk/fv/validate.pas
M /trunk/ide/fp.pas
M /trunk/ide/fpide.pas
* Video and keyboard initialization spaghetti organized and hopefully
fixed.
- Remove useless function from validate.pas
Maybe Daniel knows.
In Turbo Vision, it is the task of Tapplication to initialize drivers
and the task of Tprogram to detect how it was initialized. This was
totally messed up; i.e. Tprogram.initscreen is supposed to detect the
current screen, but people had inserted code into it that did change
the screen, so they also invented a donescreen. This caused a lot of
bugs inside FV applications.
With this patch, I brought things back as they should be, all
intialization/finalization back to Tapplication and Tprogram just
detects how things are initialized.
This is all cool, but IMHO DoneKeyboard should also be called in the
ExitProc to clean things up in case a runtime error occurs, since then
the TApplication destructor isn't (usually) called. Is there a reason
not to do that? Calling DoneKeyboard twice on normal exit should be
safe, as it checks a flag and does nothing when you call it the second time.
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel