Dmitry Drobotov 330b4fe5ed JBR-6593 Fix UI freezes with JAWS announcements
* Execute AccessibleAnnouncer.nativeAnnounce on a background thread on Windows to fix UI freezes. IntelliJ calls this method from EDT, but it doesn't need to run on EDT because on Windows it simply calls screen readers API without interacting with UI components. Additionally, when using a background thread, the JAWS SayString method, which previously could have been running for multiple seconds, is now executed immediately as expected, but the root cause of previous delays is unclear.
* In JawsAnnouncer, initialize COM library with the multithreaded model to allow executing it from different threads. Now COM is initialized and uninitialized on every call of the method as required by the [documentation](https://learn.microsoft.com/en-us/windows/win32/learnwin32/initializing-the-com-library): "Each thread that uses a COM interface must make a separate call to this function. For every successful call to CoInitializeEx, you must call CoUninitialize before the thread exits". IJawsApi COM object is still static and reused by different threads, which is allowed with a multithreaded concurrency model. It shouldn't cause issues because it has no state and only forwards calls to JAWS.

(cherry picked from commit 8cc4cd5cfd)
(cherry picked from commit d7d8d9b8e4)
(cherry picked from commit 8bfd24f89f)
2024-11-20 12:55:34 +01:00
2024-11-20 12:55:34 +01:00
2024-06-24 05:15:32 +00:00
2024-11-20 12:32:25 +01:00
2024-11-20 12:32:25 +01:00
2024-11-20 12:20:31 +01:00
2016-05-30 16:17:11 +02:00
2024-11-20 12:25:03 +01:00
2024-09-25 16:25:23 +00:00

official JetBrains project

Welcome to the JDK!

For build instructions please see the online documentation, or either of these files:

See https://openjdk.org/ for more information about the OpenJDK Community and the JDK and see https://bugs.openjdk.org for JDK issue tracking.

Description
Runtime environment based on OpenJDK for running IntelliJ Platform-based products on Windows, macOS, and Linux
Readme GPL-2.0 1.3 GiB
Languages
Java 73.7%
C++ 14%
C 8.1%
Assembly 2.7%
Objective-C 0.5%
Other 0.8%