From 0cedf3ea55b5d13781876a8a54288c9e1746bf8f Mon Sep 17 00:00:00 2001 From: H.G.Muller Date: Wed, 6 Jul 2022 22:05:53 +0200 Subject: [PATCH] Delay reciting of requested piece type in JAWS version When the Move Type-In dialog closes after flushing its speech output the NVDA screen reader prefers to read the title bar of the main window, aborting the desired output. This has now been cured by flushing the speech as a delayed event, so it comes after the reading of the title bar. A call to CancelSpeech furthermore aborts the reading of the title bar. --- winboard/jaws.c | 21 ++++++++++++++++----- 1 files changed, 16 insertions(+), 5 deletions(-) diff --git a/winboard/jaws.c b/winboard/jaws.c index 3a9ab81..59d9880 100644 --- a/winboard/jaws.c +++ b/winboard/jaws.c @@ -844,22 +844,33 @@ SayPieces(ChessSquare p) } VOID +DelayedSpeak() +{ +#ifdef NVDA + nvdaController_cancelSpeech(); +#endif + SayString("", TRUE); +} + +VOID SayPieceType(char id) { int f, r, nr = 0; ChessSquare piece = CharToPiece(id); if(piece == EmptySquare) { SayString("That is not a valid piece", FALSE); - return; - } - for(r=0; r