[fpc-devel] patch to call DoneKeyboard in the exitproc of the drivers unit
nickysn at users.sourceforge.net
Sun Aug 16 15:16:59 CEST 2009
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
>> - 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.
More information about the fpc-devel