gedit의 한글입력 버그 원인은 GtkTextView (GTK3)에 있습니다. gedit의 소스코드를 살펴봤는데 아무리 검색해봐도 imcontext 관련 api가 보이지 않아서 docs 폴더의 gedit-development-getting-started.md 파일을 읽어보니 gedit에서 텍스트 편집 영역은 GTK의 GtkTextView 위젯으로 되어있다고 나오는군요. 즉 GtkTextView 위젯을 확장하여 기능을 추가하고 gedit의 메인 위젯으로 사용하였으나 기존의 버그는 그대로 유지되고 있는 것입니다. 뿐만아니라 단일 라인 입력을 받는 GtkEntry 위젯에서도 동일한 버그가 있습니다.
버그의 유형으로 보아 다음 두 소스 파일의 각 함수에서 딱 한 부분만 수정하거나 추가해주면 될꺼같은데 누구 도전해 보실 분 없으신가요?
gtktextview.c: gtk_text_view_preedit_changed_handler()
gtkentry.c: gtk_entry_preedit_changed_cb()
gedit 41.0 소스코드 빌드하는 데에 필요한 GTK3의 버전은 최소 3.22 또는 그 이상입니다.
그리고 Lazarus IDE에서 사용하는 SynEdit 컴포넌트는 Gtk 2.x의 프리파스칼 바인딩을 백엔드로 사용하는데 2.x에서는 더 심각한 버그가 있습니다.
댓글 0