[CC me please]Could someone with better mono understanding could clarify issue #767355.Basically I failed to understand whether the upstream code is using intentionally Win32 API (via P/Invoke) to make the code less portable, or if mono simply does not support CreateCaret function at all.
They're explicitly calling out to user32.dll, a Windows DLL. This is just not portable.
If this is only a matter of changing a couple of lines to make the code portable, then all is fine. If the implementation is made such as it will never work on mono, then I'll fill a RM at ftp.debian.org.
It doesn't look like a simple matter of changing a couple of lines of code - it looks like their GUI code is implemented by p/invoking out to native Windows DLLs. You might be able to fix the CreateCaret by dropping their native implementation and just calling into System.Windows.Forms, but my guess is that this will only expose the next part that uses explicit Windows DLL calls.