Open amirmahdifard opened 1 year ago
That sounds like when it does change due to switching the exe which is in the foreground application, that when you switch back, and the exe for the special config is back in charge, as if it is not actually able to discover this under some circumstances. I suspect it might not be actually in focus due to some control or exe that is running that is not obvious to a blind person. I used to see this when some nasty app left a transparent window running that I could not close, or which took some time to go away. Brian
-- @. Sent via blueyonder.(Virgin media) Please address personal E-mail to:- @., putting 'Brian Gaff' in the display name field. ----- Original Message ----- From: "Amir Mahdi" @.> To: "nvaccess/nvda" @.> Cc: "Subscribed" @.***> Sent: Thursday, February 02, 2023 4:15 PM Subject: [nvaccess/nvda] configuration profiles, a bug when sometimes nvda stops using a profile when it shouldn't (Issue #14608)
i hope you understand my explanation, however, i hardly posting this, as i didn't know how to explane this: so, sometimes, when you have a profile and you are using that application you can do some stuf that nvda will stop using that application's profile and falls back to the normal configuration profile, and to fix it, you need to do something to go back to that window again, for example, you need to press windows key to go to start menu, and press it again to go back to that window so nvda will start to use that application's profile, or you need to go to another window and come back to this window again with alt tab keys, or you just press windows + m to go to desktop and back to this window again to make the nvda to use that profile again: but, this bug is happening really randomly and in so meny cases, so i can't just say that it is only happens in this case, or only in that case, because it can happen with anything else, but i will example some cases that this bug is happening on, so that you guys will be able to reproduce this: when you are in an application that you have a profile for it in the applications window, if you have 2 keybord lang on your computer, try to change your keybord lang with windows + space keys, if you do this, the nvda will fall back to normal configuration, or, if the application is not responding, and if you get this dialog blaablaa is not responding if you close it, you mite loos information: but you don't press anything, just wait for that dialog to go away and you back in to that application automatikly, you will see that your nvda will fall on normal configuration, until you focus on that window again manually with alt tab or something
1: for example, create a profile for your notepad 2: do some changes on it that your normal configuration profile doesn't have those changes, for example, disable speeck typed characters and speeck typed words for that profile, while your normal configuration have them enabled: note: it doesn't matter if you do some changes on the profile or keep it same as your normal configuration, i'm just telling you to do some changes so that you will be able to notice it quickly as soon as it falls back to the normal configuration profile 3: in the notepad window, press your windows + space, or do something that windows will show a dialog to you saying notepad is not responding, and then don't tuch your keybord, until this dialog whent away, and put you back on your notepad window: now, work with your notepad, you will see that it is back to the normal configuration profile and is not using your notepad profile anymore: and also, another prove for this, as long as you didn't swich your windows after this happened to you and it faled back on normal configuration profile, press NVDA + n to go to the nvda menu, and open configuration profiles, or just press the shortcut to open the configuration profiles, and you will see that it will say normal configuration editing, it won't say notepad editing, triggered
nvda sometimes randomly stops using the current application's profile and falls back to the normal configuration profile, depending on some buttons that you press on your keybord, or even you are not tuching anything, windows will just show a dialog to you and disappear after some time and puts you back in to that window again, then in these cases, nvda stops using the current application's profile, i don't know, but i guess it seems that nvda can't detect that window automatikly properly in some cases like this
nvda should always use the application's profile, as long as you are using that application and its window is open for you even if anything happened, and if you pressed any of your keybord buttons as long as you are still in that window and you didn't go out of the window yourself, so nvda should detect that window automatikly
installed
2022.4
Windows 10 22H2 (AMD64) build 19045.2486
can be anything, because you can create configuration profiles for every application, just as long as it is not a tray application or something, it should have a window, then it's ok
not needed
yes
behaviors. all versions have this problem as much as i tested and i know.
yes
Tool in NVDA's tools menu? yes
-- Reply to this email directly or view it on GitHub: https://github.com/nvaccess/nvda/issues/14608 You are receiving this because you are subscribed to this thread.
Message ID: @.***>
i don't know, all i know for now is that nvda canot detect that exe file window that is in the focus, and in some cases, it interupted that nvda canot detect anymore when windows will automatikly change dialogs, or when you press some random buttons, i figgered out windows + space for now, hopefully it is reproduceable for the developers
@CyrilleB79 @josephsl @leonardder sorry to mention you all even if you saw this issue already, but can you confurm this bug, can be any development for a fix to this bug? thanks.
oops, i'm sorry, closing and reopening was a mistake from my browser
@amirmahdifard please do not Cc every active contributor each time you open a new issue.
Speaking for myself, this won't convince me to work on the issue. I already keep an eye regularly on NVDA's GitHub issues. If I have time and feel I have something to bring, I will contribute, either by commenting (e.g. trying to reproduce) or providing a solution (design or PR).
There are almost 3000 open issues. And only few of them are answered quickly. If after some weeks or a few months you do not get any answer you may ask for an answer CCing other persons. In the mean time, just wait and keep reporting other issues or ideas as you already do.
So please, as I wrote already before, be patient. I hope you understand. Many thanks.
@CyrilleB79 @josephsl @leonardder sorry to mention you all even if you saw this issue already, but can you confurm this bug, can be any development for a fix to this bug? thanks.
@CyrilleB79 ok, sorry
If anyone is able to give some clearer steps to reproduce, it would be helpful in trying to investigate this.
@seanbudd but i already did, is that not good enough for reproducing it? i tryed my best.
Hmm this is gonna be really hard to reproduce, I've seen this behavior randomly on PCs that are slow or in applications that crash from time to time. With the steps described in the issue description I cannot reproduce it. @amirmahdifard I think a log file would really help in investigating this issue.
Can you please
I wonder if #13187 and #13189 could somehow be related to this?
This issue could actually be a duplicate of #11198.
it is similer to this, but not duplicate: i will provide a log file if nvda actually print a log for this
ok, i've got a log for you in debug, and i red it, after it said that i pressed windows plus space, it deactivated my profile, so you can read it: note 2: i didn't try with notepad, i tryed with an appliccation that i already had a profile for it and i have some difrent settings in that profile already, but i know that this also happens with notepad too. nvda log.txt
hope this helps you guys, and hope that this issue gets fixed soon, so we won't get any more problems with this nice feature in nvda.
Actually when you press windows+space and hold it pressed, a popup window appears and for that pop up window the standard profile is triggered. However, when that window disappears it seems your actual profile is not re-triggered for what ever reason. I think it might have to do with the foreground window not being detected correctly by NVDA unless you press alt+tab twice to re-focus the window.
Did you maximize the application window before reproducing this issue? Maybe it is also something related to the DPI and screen resolution but not sure. cc: @michaelDCurran
@Adriani90 yes exactly, that's what i also said in one of my comments in here, it's happening when a popup or a dialogue is appearing and then disappearing, and to fix it, we have to switch the windows with alt tab, and come back to this window again to fix it.
ok guys, i've now got even more information for you to fix this: this bug is so random, so, when you press windows + space, sometimes the window will retreev back again and the nvda will also activate the profile, but sometimes randomly, when you press it, randomly when the window doesn't go back, the profile also doesn't reactivate, until you press alt tab 2 times to refocus this window: but since this bug is happening with the normal windows applications so randomly, i can help you more and tell you some specific applications that this bug happens with them moste of the times: the applications that are coded with bgt programming script: bgt is a programming script that blind people are making audio games with it: stw is one of them, but its website is offline at the moment, but another bgt application that this bug happens with, is SBYw (Sketchbook Your World) you can download it from this website: sbyw.games warning: sadly, the anty virus programs detects the programs coded with bgt as virus, other blind people who known with bgt can confurm this: you can download the bgt from the blindhelp.net website if you want to work with this script: bgt is a game engin script made by c++ programming lang.
hi, guys, today in the SBYW game, in the chat, i talked to the sbyw's developer and to notify you again, sbyw is a game coded with bgt, so he is actually a bgt developer, so i asked him about this, i will now show you all the messages that i sent and he sent: the messages are name of the person, with a colen and a space and the message: amir is me, and Zehnomore is the developer of bgt sbyw he mentioned some things that made sence in my opinion: below is the messages. Zehnomore: so there's nothing I can do on that front, but I think I know what you're talking about when the focus ends up in a kind of limbo. It's because, I think, when the win+space window disappears your focus doesn't automatically land back in the BGT window but in some kind of dummy window, mine used to do that. Amir: yes I know you cannot do anything about that, I just want to know if the problem is from nvda, or bgt? Zehnomore: I don't know actually, you'd have to ask its dev how he construct windows. I don't think the keyhook has anything to do with it, but also if it is a dummy window it isn't BGT"s fault either, dummy windows are generated by systray applications that are kind of naughty Zehnomore: I've had iCloud and foobar2000 generate dummy window that the focus would fall into if the fornground window closed somehow, when it's supposed to dump to the previous window or, failing that, the taskbar Zehnomore: the fact that win+space is an overlay exadurates this effect as overlays behave kind of strangely Zehnomore: emoji panel does the same thing Amir: i felt it is a bgt problem because bgt doesn't really focus properly on the windows and nvda may be cannot retreev the window Zehnomore: maybe because of the way it pumps the windows event loop Zehnomore: because yeah it is a bit slower to gain focus than most other apps Zehnomore: could it be some kind of timing issue? Zehnomore: like NVDA expects a focus change and doesn't get one as quickly as it assumed so it quits waiting by the time it arrives? Amir: anyway, if you know anything useful about this, you can comment it there because they are all confused there, and then I mentioned about bgt in my last comment in there. and that was all: i hope by reading these, you get any new ideas about this bug happening because he mentioned a fue things that you can know more about them as nvda developers: thanks.
So it seems it is related to focus redirection and how NVDA handles the window. In case of windows+space bar, NVDA does not have a window handle for it. So redirecting the focus from an invalid object where there is no window handle back towards a valid object seems to fail. I get following error when pressing tab after releasing of windows]space, though tab character are written to the Word document but NVDA cannot interact with the window anzmore. STR>
Actual: The document is not getting NVDA focus, but tab characters are typed in the document Following errors are written to the log:
IO - inputCore.InputManager.executeGesture (14:43:45.553) - winInputHook (2000):
Input: kb(laptop):windows+space
DEBUGWARNING - IAccessibleHandler.internalWinEventHandler._shouldGetEvents (14:43:45.863) - MainThread (23528):
Foreground took too long to change. Foreground still 198416 (OpusApp). Should be 984986 (Shell_InputSwitchTopLevelWindow)
DEBUG - config.ConfigManager._triggerProfileExit (14:43:45.893) - MainThread (23528):
Deactivating triggered profile Word
DEBUG - config.featureFlag._validateConfig_featureFlag (14:43:45.893) - MainThread (23528):
Validating feature flag: DEFAULT, optionsEnum: BoolFlag, behaviorOfDefault: ENABLED
DEBUG - config.featureFlag._validateConfig_featureFlag (14:43:45.893) - MainThread (23528):
Validating feature flag: DEFAULT, optionsEnum: ReviewRoutingMovesSystemCaretFlag, behaviorOfDefault: NEVER
DEBUG - config.featureFlag._validateConfig_featureFlag (14:43:45.893) - MainThread (23528):
Validating feature flag: DEFAULT, optionsEnum: BoolFlag, behaviorOfDefault: ENABLED
DEBUG - config.featureFlag._validateConfig_featureFlag (14:43:45.893) - MainThread (23528):
Validating feature flag: DEFAULT, optionsEnum: BoolFlag, behaviorOfDefault: ENABLED
DEBUG - config.featureFlag._validateConfig_featureFlag (14:43:45.893) - MainThread (23528):
Validating feature flag: DEFAULT, optionsEnum: BoolFlag, behaviorOfDefault: ENABLED
DEBUG - config.featureFlag._validateConfig_featureFlag (14:43:45.893) - MainThread (23528):
Validating feature flag: DEFAULT, optionsEnum: BoolFlag, behaviorOfDefault: ENABLED
DEBUG - config.featureFlag._validateConfig_featureFlag (14:43:45.893) - MainThread (23528):
Validating feature flag: DEFAULT, optionsEnum: BoolFlag, behaviorOfDefault: ENABLED
DEBUG - config.featureFlag._validateConfig_featureFlag (14:43:45.893) - MainThread (23528):
Validating feature flag: SINGLE_LINE_BREAK, optionsEnum: ParagraphNavigationFlag, behaviorOfDefault: APPLICATION
DEBUG - config.featureFlag._validateConfig_featureFlag (14:43:45.893) - MainThread (23528):
Validating feature flag: DEFAULT, optionsEnum: WindowsTerminalStrategyFlag, behaviorOfDefault: DIFFING
DEBUG - synthDriverHandler.SynthDriver.loadSettings (14:43:45.893) - MainThread (23528):
Loaded changed settings for SynthDriver espeak
DEBUG - braille.BrailleHandler._switchDisplay (14:43:45.893) - MainThread (23528):
Reinitializing 'noBraille' braille display
DEBUG - autoSettingsUtils.autoSettings.AutoSettings._registerConfigSaveAction (14:43:45.893) - MainThread (23528):
registering pre_configSave action: <class 'brailleDisplayDrivers.noBraille.BrailleDisplayDriver'>
DEBUG - autoSettingsUtils.autoSettings.AutoSettings._loadSpecificSettings (14:43:45.893) - MainThread (23528):
loading braille noBraille
INFO - braille.BrailleHandler._setDisplay (14:43:45.893) - MainThread (23528):
Loaded braille display driver 'noBraille', current display has 0 cells.
DEBUGWARNING - hwPortUtils.listUsbDevices (14:43:45.893) - ThreadPoolExecutor-1_0 (19016):
Couldn't get DEVPKEY_Device_BusReportedDeviceDesc for {'hardwareID': 'USB\\VID_8087&PID_0033&REV_0000', 'usbID': 'VID_8087&PID_0033', 'devicePath': '\\\\?\\usb#vid_8087&pid_0033#5&242a2f40&0&10#{a5dcbf10-6530-11d2-901f-00c04fb951ed}'}: [WinError 1168] Element nicht gefunden.
IO - speech.speech.speak (14:43:45.903) - MainThread (23528):
Speaking ['Sprachumschaltungsliste', 'Liste', CancellableSpeech (still valid)]
IO - speech.speech.speak (14:43:45.908) - MainThread (23528):
Speaking ['Japanisch Microsoft-IME', '3 von 3', CancellableSpeech (still valid)]
DEBUGWARNING - UIAHandler.UIAHandler.getNearestWindowHandle (14:43:46.733) - Dummy-1 (11364):
error walking up to an element with a valid windowHandle
Traceback (most recent call last):
File "UIAHandler\__init__.pyc", line 1314, in getNearestWindowHandle
_ctypes.COMError: (-2147467259, 'Unbekannter Fehler', (None, None, None, 0, None))
DEBUGWARNING - NVDAObjects.__call__ (14:43:46.733) - Dummy-1 (11364):
Invalid NVDAObject: no windowHandle
Traceback (most recent call last):
File "NVDAObjects\__init__.pyc", line 93, in __call__
File "NVDAObjects\UIA\__init__.pyc", line 1363, in __init__
NVDAObjects.InvalidNVDAObject: no windowHandle
IO - speech.speech.speak (14:43:46.748) - MainThread (23528):
Speaking ['Japanische Zeichen (Hiragana Roman)']
DEBUGWARNING - UIAHandler.UIAHandler.getNearestWindowHandle (14:43:46.773) - Dummy-1 (11364):
error walking up to an element with a valid windowHandle
Traceback (most recent call last):
File "UIAHandler\__init__.pyc", line 1314, in getNearestWindowHandle
_ctypes.COMError: (-2147467259, 'Unbekannter Fehler', (None, None, None, 0, None))
DEBUGWARNING - NVDAObjects.__call__ (14:43:46.773) - Dummy-1 (11364):
Invalid NVDAObject: no windowHandle
Traceback (most recent call last):
File "NVDAObjects\__init__.pyc", line 93, in __call__
File "NVDAObjects\UIA\__init__.pyc", line 1363, in __init__
NVDAObjects.InvalidNVDAObject: no windowHandle
DEBUG - UIAHandler.shouldUseUIAInMSWord (14:43:46.783) - Dummy-1 (11364):
User does not want UIA in MS Word unless necessary
IO - inputCore.InputManager.executeGesture (14:43:48.543) - winInputHook (2000):
Input: kb(laptop):tab
DEBUG - UIAHandler.shouldUseUIAInMSWord (14:43:48.570) - MainThread (23528):
User does not want UIA in MS Word unless necessary
DEBUGWARNING - NVDAObjects.UIA.UIA._prefetchUIACacheForPropertyIDs (14:43:48.570) - MainThread (23528):
IUIAutomationElement.buildUpdatedCache failed given IDs of {30019, 30086, 30022, 30025, 30155, 30138, 30036, 30070, 30103, 30008, 30009, 30010, 30046, 30079}
ERROR - eventHandler.executeEvent (14:43:48.570) - MainThread (23528):
error executing event: typedCharacter on <NVDAObjects.UIA.ListItem object at 0x056B82F0> with extra args of {'ch': '\t'}
Traceback (most recent call last):
File "eventHandler.pyc", line 327, in executeEvent
File "eventHandler.pyc", line 115, in __init__
File "eventHandler.pyc", line 124, in next
File "NVDAObjects\__init__.pyc", line 1199, in event_typedCharacter
File "speech\speech.pyc", line 1225, in speakTypedCharacters
File "api.pyc", line 349, in isTypingProtected
File "baseObject.pyc", line 62, in __get__
File "baseObject.pyc", line 168, in _getPropertyViaCache
File "NVDAObjects\__init__.pyc", line 1074, in _get_isProtected
File "baseObject.pyc", line 62, in __get__
File "baseObject.pyc", line 168, in _getPropertyViaCache
File "NVDAObjects\UIA\__init__.pyc", line 1692, in _get_states
File "NVDAObjects\UIA\__init__.pyc", line 987, in _getUIACacheablePropertyValue
_ctypes.COMError: (-2147418094, 'Der Aufgerufene (Server, nicht die Serveranwendung) ist nicht verfügbar und kann nicht gefunden werden. Alle Verbindungen sind ungültig. Der Aufruf wurde nicht ausgeführt.', (None, None, None, 0, None))
This happens when pressing alt+shift as well. I think this is the reason why also the profile is not properly changed back.
Expected: NVDA should get propper focus to the word document after release of windows+space bar or alt+shift command.
I have following keyboard inputs installed:
cc: @josephsl, @jcsteh maybe you have some ideas on how to fix this.
This errors can be reproduced in notepad++ or any browser window as well.
Hi,
In this case, when the input switcher window closes, NVDA knows that it should find out what the foreground/focus window is, but it fails due to window handle fetch issue (either the handle is NULL (0) or an issue occurred due to 32-bit/64-bit mismatch). I'm wondering if this should be looked at as part of #16304 - and it does turn out to be 32-bit and 64-bit mismatch (where a 64-bit handle value is truncated on 32-bit executables, then resolving this iss won't be that easy).
Thanks.
Discription:
i hope you understand my explanation, however, i hardly posting this, as i didn't know how to explane this: so, sometimes, when you have a profile and you are using that application you can do some stuf that nvda will stop using that application's profile and falls back to the normal configuration profile, and to fix it, you need to do something to go back to that window again, for example, you need to press windows key to go to start menu, and press it again to go back to that window so nvda will start to use that application's profile, or you need to go to another window and come back to this window again with alt tab keys, or you just press windows + m to go to desktop and back to this window again to make the nvda to use that profile again: but, this bug is happening really randomly and in so meny cases, so i can't just say that it is only happens in this case, or only in that case, because it can happen with anything else, but i will example some cases that this bug is happening on, so that you guys will be able to reproduce this: when you are in an application that you have a profile for it in the applications window, if you have 2 keybord lang on your computer, try to change your keybord lang with windows + space keys, if you do this, the nvda will fall back to normal configuration, or, if the application is not responding, and if you get this dialog blaablaa is not responding if you close it, you mite loos information: but you don't press anything, just wait for that dialog to go away and you back in to that application automatikly, you will see that your nvda will fall on normal configuration, until you focus on that window again manually with alt tab or something
Steps to reproduce:
1: for example, create a profile for your notepad 2: do some changes on it that your normal configuration profile doesn't have those changes, for example, disable speeck typed characters and speeck typed words for that profile, while your normal configuration have them enabled: note: it doesn't matter if you do some changes on the profile or keep it same as your normal configuration, i'm just telling you to do some changes so that you will be able to notice it quickly as soon as it falls back to the normal configuration profile 3: in the notepad window, press your windows + space, or do something that windows will show a dialog to you saying notepad is not responding, and then don't tuch your keybord, until this dialog whent away, and put you back on your notepad window: now, work with your notepad, you will see that it is back to the normal configuration profile and is not using your notepad profile anymore: and also, another prove for this, as long as you didn't swich your windows after this happened to you and it faled back on normal configuration profile, press NVDA + n to go to the nvda menu, and open configuration profiles, or just press the shortcut to open the configuration profiles, and you will see that it will say normal configuration editing, it won't say notepad editing, triggered
Actual behavior:
nvda sometimes randomly stops using the current application's profile and falls back to the normal configuration profile, depending on some buttons that you press on your keybord, or even you are not tuching anything, windows will just show a dialog to you and disappear after some time and puts you back in to that window again, then in these cases, nvda stops using the current application's profile, i don't know, but i guess it seems that nvda can't detect that window automatikly properly in some cases like this
Expected behavior:
nvda should always use the application's profile, as long as you are using that application and its window is open for you even if anything happened, and if you pressed any of your keybord buttons as long as you are still in that window and you didn't go out of the window yourself, so nvda should detect that window automatikly
NVDA logs, crash dumps and other attachments:
System configuration
NVDA installed/portable/running from source:
installed
NVDA version:
2022.4
Windows version:
Windows 10 22H2 (AMD64) build 19045.2486
Name and version of other software in use when reproducing the issue:
can be anything, because you can create configuration profiles for every application, just as long as it is not a tray application or something, it should have a window, then it's ok
Other information about your system:
not needed
Other questions
Does the issue still occur after restarting your computer?
yes
Have you tried any other versions of NVDA? If so, please report their behaviors.
all versions have this problem as much as i tested and i know.
If NVDA add-ons are disabled, is your problem still occurring?
yes
Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?
yes