Better way to control text input source from 4D
The previous version 4d-plugin-text-input-service was directly calling Text Input Service APIs (part of carbon framework, but 64-bit compatible). Incidentally, it was necessary to call them via PA_RunInMainProcess
since v16 to avoid a crash.
This version calls Text Input Context API, which seems to be more compatible with cocoa apps. It also seems no longer necessary to use PA_RunInMainProcess
, so the plugin is thread safe (PA_RunInMainProcess
is not thread safe). It can also return objects and collections (again, PA_RunInMainProcess
is incompatible). Also, thanks to the improvements made to the SDK in v17, plugins can receive array parameters in thread safe mode.