WebKitGtk에 한글 버그를 수정한 패치가 반영되다..

joone의 이미지

우분투 9.10에서 GNOME의 기본 브라우저인 epiphany나 midori를 사용해보신 분은 알겠지만, element에서 한글을 입력할 때, 마우스 클릭을 하면 조합되고 있는 글자가 두번 입력되는 버그가 있었습니다. iBus의 문제일 수도 있지만, WebKitGtk Port에서 우선, 문제를 수정했습니다. http://trac.webkit.org/changeset/65209

그 동안 자잘한 build break을 수정한 Patch는 올렸지만, 실제 제대로 된 버그를 수정하기는 처음이네요. 이외 모음과 자음이 순서에 상관 없이 입력되는데, 버그인지 아닌지 잘 모르겠습니다. 하여간, kldp e-mail로 patch를 올리니까 더 좋네요.

버그를 잡으면서 보니까, iBus Project(http://code.google.com/p/ibus/)에 나비로 유명하신 최환진님이 참여하고 계시더군요. 아는 이름을 봐서 반가웠습니다.

댓글

krisna의 이미지

수고하셨습니다.

저는 일반적으로 볼때에 마우스 클릭할때 입력기가 commit 할수 있게
reset() 메소드를 호출하여 주는 것이 좋다고 생각하고 있습니다.
그러나 webkit과 같은 각 클라이언트 프로그램들이 그렇게 구현하고
있지 않아서 문제 발생의 소지가 높습니다.

일단 webkit의 경우에는 joone님 덕분에 그렇게 구현되었지만, 다른 언어의
입력기들에서 문제가 생긴다는 보고가 들어오게 되면 다시 구현 내용이 바뀔수 있으니
이후의 변경 사항들을 주의하여 지켜봐야 할 것 같습니다.

joone의 이미지


말씀대로 mouse press event가 발생할 때, gtk_im_context_reset() 호출해도, iBus의 경우, commit signal이 한 번 더 발생합니다.
이 commit signal을 무시하도록 하는 것이 제가 만든 patch의 주요 기능입니다.
nabi와 scim의 경우, 이런 문제는 없었습니다.

일단, Chromium도 같은 현상이 있는데, 그쪽에서는 iBus에 문제가 있는 것 같다고 하면서, Chromium에서 문제를 해결하기 보다는,
maintainer에게 이야기해보겠다고 했습니다.

일본어에도 비슷한 문제가 있으므로, iBus의 상황을 지켜보려고 합니다.

조언 고맙습니다.

______________
http://joone.net

krisna의 이미지

그러나 reset() 메소드 안에서 commit signal이 여러번 오더라도 client 코드는 제대로 동작하여야 합니다.
reset() 메소드에서 반드시 commit signal이 한번만 와야 하는 것은 아닙니다.

그러나 ibus에서 같은 스트링을 가지고 두번 commit signal이 온다면 ibus의 버그라고 보는 편이 좋겠습니다.

wkpark의 이미지

mozilla뿐만 아니라 webkit까지~~ @@

좋은 활약 기대하겠습니다~ ^^

온갖 참된 삶은 만남이다 --Martin Buber

madman93의 이미지

---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------

---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------

joone의 이미지

앞으로 오픈소스 활동 내용을 자주 공유하도록 노력하겠습니다.
고수님들의 많은 조언을 바랍니다..

고맙습니다.
_________________________
http://opensoftware.kr

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.