Skip to content
This repository has been archived by the owner on Jun 7, 2020. It is now read-only.

데비안8 64bit eclipse 에서 수정을 위해서 중간 위치에 한글 한글자 입력후 오른쪽 화살키 입력시 입력한 글자가 사라집니다. #2

Closed
madang01 opened this issue Nov 15, 2015 · 2 comments

Comments

@madang01
Copy link

데비안8 64bit eclipse 에서 수정을 위해서 중간 위치에
한글 한글자 입력후 오른쪽 화살키 입력시 입력한 글자가 사라집니다.

원문 : "값 설치경로에 맞게 변경한다."
원하는 결과 : "값들 설치경로에 맞게 변경한다."
실제 결과 : "값 설치경로에 맞게 변경한다."

커서 위치는 "설" 자와 "치" 자 사이에서 깜박입니다.

터미널이나 iceweal 에서는 eclipse 와 같은 현상 없이 잘 동작합니다.
터미널이나 iceweal 에서도 잘 동작하는거 봐서는
이클립스쪽 문제가 아닌가 조심스럽게 추정해 보지만
그래도 관련 내용이라 이곳 이슈에 올려봅니다.

----------- uname -a 결과
Linux madang01 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u5 (2015-10-09) x86_64 GNU/Linux
-----------
Eclipse Platform  Version: 3.8.1
@ghost
Copy link

ghost commented Nov 15, 2015

fcitx, imhangul 에서 해당 증상 나타나지 않음.
이클립스 실행하여 ㄱ 입력후 화살표 키 누를 경우,
다솜 gtk im 모듈이 아래처럼 실행되는데 이상은 없어 보입니다.

(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_FOCUS_IN, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_FOCUS_IN_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_RESET, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_RESET_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_FILTER_EVENT, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_PREEDIT_START, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_PREEDIT_START_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_PREEDIT_CHANGED, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_GET_PREEDIT_STRING, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_GET_PREEDIT_STRING_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_SET_CURSOR_LOCATION, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_SET_CURSOR_LOCATION_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_PREEDIT_CHANGED_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_FILTER_EVENT_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_FILTER_EVENT, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_FILTER_EVENT_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_FILTER_EVENT, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_COMMIT, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_SET_CURSOR_LOCATION, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_SET_CURSOR_LOCATION_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_COMMIT_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_PREEDIT_CHANGED, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_GET_PREEDIT_STRING, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_GET_PREEDIT_STRING_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_GET_PREEDIT_STRING, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_GET_PREEDIT_STRING_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_PREEDIT_CHANGED_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_PREEDIT_END, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_PREEDIT_END_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_FILTER_EVENT_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_FILTER_EVENT, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_FILTER_EVENT_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_FOCUS_OUT, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_FOCUS_OUT_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_FOCUS_IN, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_FOCUS_IN_REPLY, fd: 126
(Eclipse:5930): dasom-DEBUG: send: DASOM_MESSAGE_FOCUS_OUT, fd: 126
(Eclipse:5930): dasom-DEBUG: recv: DASOM_MESSAGE_FOCUS_OUT_REPLY, fd: 126

hodong@debian:~/dasom-jeongeum$ git diff

diff --git a/src/dasom-jeongeum.c b/src/dasom-jeongeum.c
index e6d1818..e23f4cc 100644
--- a/src/dasom-jeongeum.c
+++ b/src/dasom-jeongeum.c
@@ -377,6 +377,13 @@ dasom_jeongeum_filter_event (DasomEngine     *engine,
       dasom_jeongeum_filter_leading_consonant (engine, target, keyval))
     return TRUE;

+  if (event->key.keyval == DASOM_KEY_Left || event->key.keyval == DASOM_KEY_space)
+  {
+    g_message ("in case of DASOM_KEY_Left hangul_ic_process returns %d", retval);
+    dasom_jeongeum_reset (engine, target);
+    return TRUE;
+  }
+
   retval = hangul_ic_process (jeongeum->context, keyval);

   ucs_commit  = hangul_ic_get_commit_string  (jeongeum->context);

이런 코드를 넣어서 확인해봤는데,
조합 중일 때 스페이스 누를 경우 출력됨.
조합 중일 때 왼쪽 화살표 누를 경우 출력되지 않음.
이클립스 문제입니다.

이유는 모르겠으나 아래처럼 해도 회피가 되지 않습니다.
hodong@debian:~/dasom$ git diff

diff --git a/modules/clients/gtk/im-dasom.c b/modules/clients/gtk/im-dasom.c
index 57aa18e..9219383 100644
--- a/modules/clients/gtk/im-dasom.c
+++ b/modules/clients/gtk/im-dasom.c
@@ -138,6 +138,10 @@ on_gdk_x_event (XEvent            *xevent,
       if (context->is_hook_gdk_event_key)
       {
         DasomEvent *d_event = translate_xkey_event (xevent);
+
+        if (d_event->key.keyval == DASOM_KEY_Left)
+          dasom_im_reset (context->im);
+
         retval = dasom_im_filter_event (context->im, d_event);
         dasom_event_free (d_event);
       }

@ghost
Copy link

ghost commented Nov 21, 2015

This issue was moved to dasom-im/dasom#29

@ghost ghost locked and limited conversation to collaborators Nov 21, 2015
@ghost ghost added the moved to dasom label Nov 21, 2015
This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant