Repository: nvaccess/nvda

Issue:
NVDA does not read in the Fast Log Entry
### Steps to reproduce:
-1. Download Fast Log Entry installer from http://df3cb.com/fle/
0. Install FLE
1. Open FLE
2. Try to navigate using cursor keys

### Actual behavior:
The text (log content) is not read. There are unknown symbols on the braille display eg. '\x2023''\x6548''\x6461''\x7265'...

### Expected behavior:
An edit field similar to Notepad filled with example log should be readable.

### System configuration:

#### NVDA Installed/portable/running from source:
Installed

#### NVDA version:
2018.3.2

#### Windows version:
Windows 7 64bit Version 6.1.7601 Service Pack 1 Build 7601

#### Name and version of other software in use when reproducing the issue:
Fast Log Entry 2.12

#### Other information about your system:

### Other questions:

#### Does the issue still occur after restarting your PC?
Yes

#### Have you tried any other versions of NVDA?
- NVDA 2017.3, Windows XP 32bit - works
- NVDA 2018.3.2, Windows 10 32bit - doesn't work
- NVDA 2018.3.2, Windows 10 64bit - doesn't work

### Remarks
- Commercial screenreaders work properly.



Discussion:
Problem still persists in NVDA 2019.1
Problem still persists in NVDA 2019.3.1
This seems to be a regression.
cc: @jcsteh, @michaelDCurran this regression is quite a long time ago, but maybe someone of you can find the coresponding cause for this.
@HegrJan I assume this is still reproducible. Is this correct?
Yes, it is.

On 5/11/20, Adriani90 <notifications@github.com> wrote:
> @HegrJan I assume this is still reproducible. Is this correct?
>
> --
> You are receiving this because you were mentioned.
> Reply to this email directly or view it on GitHub:
> https://github.com/nvaccess/nvda/issues/8996#issuecomment-626407324

Problem still persists in NVDA 2020.1

Resolving patch:
diff --git a/source/NVDAObjects/window/__init__.py b/source/NVDAObjects/window/__init__.py
--- a/source/NVDAObjects/window/__init__.py
+++ b/source/NVDAObjects/window/__init__.py
@@ -16,7 +16,7 @@
 import displayModel
 import eventHandler
 from NVDAObjects import NVDAObject
-from NVDAObjects.behaviors import EditableText, LiveText
+from NVDAObjects.behaviors import EditableText, EditableTextWithoutAutoSelectDetection, LiveText
 import watchdog
 from locationHelper import RectLTWH
 
@@ -390,7 +390,8 @@ class Desktop(Window):
 	def _get_name(self):
 		return _("Desktop")
 
-class DisplayModelEditableText(EditableText, Window):
+
+class DisplayModelEditableText(EditableTextWithoutAutoSelectDetection, Window):
 
 	role=controlTypes.ROLE_EDITABLETEXT
 	TextInfo = displayModel.EditableTextDisplayModelTextInfo
diff --git a/source/appModules/fastlogentry.py b/source/appModules/fastlogentry.py
new file mode 100644
--- /dev/null
+++ b/source/appModules/fastlogentry.py
@@ -0,0 +1,27 @@
+# A part of NonVisual Desktop Access (NVDA)
+# Copyright (C) 2020 NV Access Limited, Łukasz Golonka
+# This file may be used under the terms of the GNU General Public License, version 2 or later.
+# For more details see: https://www.gnu.org/licenses/gpl-2.0.html
+
+import appModuleHandler
+from NVDAObjects.window import DisplayModelEditableText
+from NVDAObjects.window.edit import UnidentifiedEdit
+
+
+class TSynMemo(DisplayModelEditableText):
+
+	name = None  # Name is complete garbage as well.
+
+
+class AppModule(appModuleHandler.AppModule):
+
+	def chooseNVDAObjectOverlayClasses(self, obj, clsList):
+		windowClass = obj.windowClassName
+		if windowClass == "TSynMemo":
+			# #8996: Edit fields in Fast Log Entry can't use UnidentifiedEdit
+			# because  their WindowText contains complete garbage.
+			try:
+				clsList.remove(UnidentifiedEdit)
+			except ValueError:
+				pass
+			clsList.insert(0, TSynMemo)


Test patch: