현재 X 서버가 실행 중이지만 창 관리자가없는 Linux armv7 임베디드 시스템에서 SDL2를 사용하는 UnrealEngine4 데모 앱을 빌드하고 실행하려고합니다.SDL2 입력 포커스
내가보기에는 마우스가 정상적으로 작동하지만 앱이 키보드 이벤트에 반응하지 않는다는 것입니다.
더 자세히 살펴보면 SDL_Event.key.windowID가 앱의 SDL_Window ID와 일치하지 않으면 UE4가 키보드 이벤트를 무시한다는 점이 밝혀졌습니다. SDL_GetKeyboardFocus()를 호출하여이를 확인했으며 키보드 포커스가 0 인 반면 앱의 창 ID는 5이지만
키보드 포커스가 특정으로 설정되어있는 것처럼 보입니다. X 서버에서 focusIn 이벤트를받은 후 SDL 창을 엽니 다. (SDL_x11 이벤트 .c의 X11_DispatchEvent() 참조).
FocusIn/FocusOut not generated
SDL_x11windows에 X11_RaiseWindow()를 해킹 후 : 그러나이 focusIn 이벤트는 X 서버에 의해 생성되지 않습니다 윈도우 매니저없이 X11을 실행하는 경우처럼 이미 답이 여기로
같습니다 .c 추가 :
X11_XSetInputFocus (display, data-> xwindow, RevertToParent, CurrentTime); SDL_SetKeyboardFocus (data-> window);
은 최종적으로 키보드 이벤트를 처리 할 수있었습니다.
위의 평가 소리가 맞습니까? 그렇다면 깨끗한 해결책이 있습니까? 나는 아직도 파고 있지만 어떤 제안이라도 대단히 감사 할 것입니다.
감사
같은 문제가 발생했습니다. 그것은 이것이 SDL의 실제 행동 인 것으로 보입니다. 따라서 버그 리포트를 제출해야합니다. –