panojune
(panojune)
1
안녕하세요.
위 스샷은 5.6.1 버전 에디터에서 아웃라이너 검색창에 ‘1’과 ‘ㅂ’ 을 반복해서 입력한 화면입니다.
보시면 어느 순간부터 한글은 입력되지 않고 1만 입력됩니다.
스샷으로 표현하려다 보니 저렇게 했지만 그냥 ‘1’을 40개 정도 쓰고 한글을 입력해보면 입력이 되지 않습니다.
일단 제가 확인한 내용은 문제가 발생한 시점 부터는 FTextStoreACP 쪽에서 OnUpdateComposition이 호출되지 않고 OnStartComposition 직후 동일한 틱에서 OnEndComposition가 호출되고 있습니다.
윈도우 옵션에서 “이전 버전의 Microsoft IME” 를 켜면 문제가 발생하지 않습니다.
윈도우 버그인가 싶긴 하지만.. 당연히 게임 내 에서도 동일한 현상이 발생하고 있어서 혹시 해결 방법이 있을지 문의 드립니다.
1 Like
panojune
(panojune)
2
자문자답입니다.
FTextStoreACP::GetText() 에 잘못된 부분이 있는걸로 보이는데요.
prgRunInfo[0].uCount = FMath::Min(static_cast(ulRunInfoReq), Length);
여기서 ulRunInfoReq 의 의미는 prgRunInfo 구조체 배열의 크기 이므로,
prgRunInfo[0].uCount 에 들어가야 할 값은 pchPlain에 복사된 문자의 개수(*pcchPlainOut)가 맞는 것 같습니다.
마찬가지로 제일 마지막 부분에서의 Length 도 *pcchPlainOut가 대신 사용되는게 올바른거 같습니다.
*pacpNext = BeginIndex + (*pcchPlainOut);
아니면 처음 Length를 계산할때 cchPlainReq를 최대값으로 사용하는 방법도 좋아 보입니다.