Tested on Chinese version Windows 10, Qt 6.2.3, using text handling widgets like QLineEdit, QPlainTextEdit and QTextEdit.
Steps to reproduce:
- Switch to Microsoft Pinyin input method
- Press and hold SHIFT
- Input some letter, capital letter appears in composition string (with underline, meaning they are not committed yet)
- Release SHIFT
- Capital letters in composition string committed
- composition string removed, nothing is committed
Did a little research into the code, I found a commit 93038767b71559f1606c787f97d7c307fba82723, which is a fix to
That commit adds call to d->handleSoftwareInputPanel() inside keyReleaseEvent. And function handleSoftwareInputPanel calls QGuiApplication::inputMethod()->show(), which didn't check if composing string is empty.
I don't know much about software input panel, why still check for SIP on Windows with physical keyboard? Is there any way to disable SIP completely?