Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incompatible with Windows 11 WinUI 3 apps #13

Open
Rohupt opened this issue Sep 21, 2022 · 4 comments
Open

Incompatible with Windows 11 WinUI 3 apps #13

Rohupt opened this issue Sep 21, 2022 · 4 comments

Comments

@Rohupt
Copy link

Rohupt commented Sep 21, 2022

I recently got a new Windows 11 machine, and the IME dll apparently isn't loaded by WinUI 3 apps (MS To Do, Mail, Calendar, Windows Store, etc.). The apps are listed as x64 in Task Manager, but the language and input method don't change into SampleIME no matter what I do. Can you test this?

@saschanaz
Copy link
Owner

This is a known issue: https://github.com/saschanaz/ime-rs#doesnt-work-by-default

This requires the DLL to be digitally signed per the docs, which this demo does not provide.

I currently have no idea how to sign the DLL, we need some extra information here.

@Rohupt
Copy link
Author

Rohupt commented Jul 22, 2023

I did find a way to self-sign the dll, but as of the moment only Sublime Text is able to run the IME properly in windows 11, regardless of the files being signed or not. In the rest of the apps, the candidate window just flash a bit and then cancelled, I can't actually type anything.

In case you wonder about how to sign the DLL, first generate a certificate as shown here and then sign the DLLs post-build using this command.

@saschanaz
Copy link
Owner

Oh nice, so it at least loads when signed. It doesn't even flash when not signed, right?

It may be an issue of being unable to load the dictionary file, as a DLL loaded in sandboxed app can't access a random path outside of the app package. I don't have a good solution for that, maybe the dictionary could be somehow bundled inside DLL.

@Rohupt
Copy link
Author

Rohupt commented Jul 22, 2023

It... runs properly now, at least in Windows Store, Notepad, Sticky Note, Maps, Paint and some other WinUI 3 apps I've tested, whether it's signed or not doesn't matter. Maybe they updated some API or something. That shouldn't be a problem now.

And I've found out why it flashes. Another process called ITfCompositionSink::OnCompositionTerminated, forcefully stop the composition. Perhaps there should be a way to find out which process and why it does that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants