Only call ShowCaret if Windows 10 1709 or later is used

This amends cc873ec23a which worked around
a problem that was showing up on earlier versions of Windows. This
extends the workaround up to Windows 10 1703 as the problem was still
occurring up to that version.

Fixes: QTBUG-79143
Change-Id: Ib7eace17fb8e3817c556e2bcd462e37834b1cbcf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
This commit is contained in:
Andy Shaw 2019-10-18 12:28:13 +02:00
parent ba2ee2875a
commit be73bdc5d2

View File

@ -280,13 +280,15 @@ void QWindowsInputContext::showInputPanel()
// with Windows 10 if the Windows IME is (re)enabled _after_ the caret is shown.
if (m_caretCreated) {
cursorRectChanged();
// We only call ShowCaret() on Windows 10 as in earlier versions the caret
// would actually be visible (QTBUG-74492) and the workaround for the
// Surface seems unnecessary there anyway. But leave it hidden for IME.
if (QOperatingSystemVersion::current() >= QOperatingSystemVersion::Windows10)
// We only call ShowCaret() on Windows 10 after 1703 as in earlier versions
// the caret would actually be visible (QTBUG-74492) and the workaround for
// the Surface seems unnecessary there anyway. But leave it hidden for IME.
if (QOperatingSystemVersion::current() >=
QOperatingSystemVersion(QOperatingSystemVersion::Windows, 10, 0, 16299)) {
ShowCaret(platformWindow->handle());
else
} else {
HideCaret(platformWindow->handle());
}
setWindowsImeEnabled(platformWindow, false);
setWindowsImeEnabled(platformWindow, true);
}