In some Win10 testbot images (notably jp and cn), we can get a spurious
layout change after creating the test window and also when explicitly
activating the offending layout. Detect such behavior and skip tests
whose assumptions are invalidate by this spurious change.
---
Landing this MR will unblock https://gitlab.winehq.org/wine/wine/-/merge_requests/5601.
The testbot run for the latest version of this MR (v3) is https://testbot.winehq.org/JobDetails.pl?Key=145591. There are two new failures for the Win11 images, but they don't seem related to the changes here.
I have been trying to investigate what's going with the Win10 (jp/cn) testbots but I don't think I can make more progress at this point. I will document my findings in a comment below in case they prove useful to anyone wishing to investigate further.
--
v4: user32/tests: Remove workaround for SendInput keyboard tests on zh_CN.
user32/tests: Skip affected keyboard tests if a spurious layout change is detected.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5652
After a recent OS update, the dictation input source remains
"selected" in *all* apps for about 10 minutes after it is activated,
even when it is not in use. There doesn't seem to be any way to
determine whether it's actually active or just lingering, and sending
input to it regardless means that we falsely process input as if it
was going to an IME.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5660
In some Win10 testbot images (notably jp and cn), we can get a spurious
layout change after creating the test window. Detect this and skip the
tests since the test expectations (e.g., wchar mappings) are now
invalid.
--
v2: user32: Remove workaround for SendInput keyboard tests on zh_CN.
user32: Skip affected keyboard tests if a spurious layout change is detected.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5652
--
v7: jscript: Remove PROP_IDX dispex props by handling them in object prop methods.
jscript: Move filling the PROTREF into a helper.
jscript: Simplify get_flags to only check whether it's enumerable.
jscript: Get rid of on_put in the object vtbl.
jscript: Inline prop_put.
jscript: Inline prop_get.
jscript: Inline invoke_prop_func and invoke PROTREFs using their vtbl method.
jscript: Inline delete_prop.
jscript: Use mandatory methods in the object vtbl to operate on props found
jscript: Use mandatory methods in the object vtbl to operate on props
mshtml/tests: Test redefining a writable indexed prop.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5444
This hits some OS-level bugs, and while I think it's a valuable user experience improvement, it seems best to just revert it for now. Issues I've uncovered since it was merged:
1. Rapidly hiding and showing a dock icon results in multiple icons for the same app. Those icons persist after the app exits, and if you click on them then, they disappear. I've seen this in a few applications, most reliably the Notepad++ installer, after selecting a language in the first dialog.
2. Removing a dock icon deactivates the app and reactivates the most recently active one. If it still has windows open, those move behind whatever app becomes active. And, we can't reliably work around that because...
3. With the cooperative app activation added in Sonoma, any requests to bring forward an app with no dock icon seem to fail. One illustratively bad case is Notepad++'s in-app modal update message box. It's from another process (which gets no taskbar icon on Windows and thus no dock icon with this patch). But since it can't be brought forward, and since it's modal, the result is that the Notepad++ main window is disabled for no apparent reason, and there's no way to select the dialog.
This reverts commit f0efb2e46a7fb2a00f85196a4a06bd50eda560b2.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5657