Comments (4)
말씀하신 기능은 매우 유용한 기능입니다.
조간만 구현하겠습니다.
from dasom.
- 오작동의 소지가 있습니다.
GTK의 경우GDK_SELECTION_PRIMARY
, Xlib 의 경우XA_PRIMARY
이런 걸로 구현은 가능하지만,
GDK_SELECTION_PRIMARY
,XA_PRIMARY
이 둘의 동작이 약간 다릅니다.
GDK_SELECTION_PRIMARY
는 마우스로 선택한 것이 출력되고,
XA_PRIMARY
는 마우스로 선택 후 복사한 것이 출력됩니다.
Qt 쪽은 어떻게 되는지 시험해보지 않았습니다.
일단, GTK 쪽과 Xlib 의 경우 다르게 작동할 것 같습니다. - 부하가 많이 걸립니다.
한자창에서 SELECTION 을 감지하여 작동시킬 경우, 오작동의 소지가 큽니다.
어플1에서선택1
하고, 어플2에서선택2
한 경우,선택1
이 리셋되지 않은 상태에서선택2
가 선택됩니다. 다른 창을 클릭할 경우(focus out / focus in),선택
에 대한 어플 동작이 통일되어 있지 않습니다. 그리고 조합 중인 문자(preedit) 체크해야 하고,GDK_SELECTION_PRIMARY
체크해야 하는데 부하가 약간 걸립니다. 따라서 한자창(candidate)에서 구현하기는 곤란하고,
언어 모듈 dasom-jeongeum 에서 구현하게 되면, dasom-jeongeum 이 GDK, Qt, X 에 종속되는 결과를 초래합니다.
이를 피하려면 dasom-gtk, dasom-qt 모듈(클라이언트)에서 서버로 선택 문자열을 전송하는 api 를 만들면 되겠지만, 이 경우 선택할 때마다 부하가 약간 걸리는 정도가 아니라 많이 걸립니다.
from dasom.
dasom-candidate.c 에서 이 기능을 구현하기는 곤란하고, 한글 엔진에 특화된 별도의 한자창(예; dasom-jeongeum-candidate.c) 만들면 가능할 것 같습니다.
from dasom.
MS윈도XP 에 있는 한글 입력기를 살펴보았는데,
메모장이나 워드패드에서
|가나다라
입력이 되어 있다고 할 때,
|
을 커서라고 합시다. 그때 한자키를 누르면 가
가 푸른색으로 선택되고 한자목록이 나옵니다.
한자키를 다시 누르면 한자창이 사라지고 선택이 해제되고 커서가 오른쪽으로 이동합니다.
가|나다라
이렇게 되고... 한자키를 누를 때마다 이러한 동작이 오른쪽으로 반복됩니다.
그런데 특이한 사항이 있는데 크롬에서는 안 그럽니다.
크롬에서는 마우스로 글자를 선택하고 한자키를 눌러도 한자가 뜨지 않습니다.
이게 무엇을 의미하냐면, 말씀하신 동작을 위해...
그 동작과 관련된 API 가 응용 프로그램와 입력기에 구현되어 있다는 의미입니다.
리눅스에는 그러한 API가 없습니다.
따라서 이러한 기능을 구현하기 위해서는
XIM 따로, Qt 따로, GTK 따로.. 이렇게 구현해야 가능할 것 같고,
어떤 어플은 작동될 수도 있고, 안 될 수도 있습니다.
그게 단순히 클립보드를 다루면 가능할 것으로 보이긴 하지만,
팝업 사전 기능이라면 충분히 가능하지만, 선택된 부분(버퍼겠죠...)이 editable
편집 가능한 부분인지 확인을 해야 오류를 피할 수 있습니다만, 그러한 일을 수행할 수 있는 IM API 가 없습니다.
조금이라도 가능하게 하려면 이벤트를 후킹해서... API 문서에 나와 있지 않은 방법을 사용하면 가능할 수도 있겠지만, 이는 안정성을 저해하는 매우 나쁜 방법입니다.
현재의 GTK IM, Qt IM, XIM API 로는 구현이 불가능하고 후킹 및 해킹(gdk_window_get_user_data
)을 하여 구현하더라도 불완전하거나 불안하게 작동하게 됩니다. 따라서 구현하지 않겠습니다.
그리고, 말씀하신 기능을 위한 어떤 API를 설계하여 전세계에 보급하는 것이 바람직해 보입니다.
wayland 프로젝트에 Wayland Input Protocol 에 문의해보세요.
감사합니다.
from dasom.
Related Issues (20)
- Dvorak-Qwerty 키보드 레이아웃 HOT 5
- 우분투 Unity Dash(검색창)에서 한/영 전환이 잘 안되는 경우가 있습니다. HOT 7
- Sublime Text 3 에서 일종의 끝글자 문제? HOT 5
- Komodo Edit, 한국어 입력이 이상해지는 문제. HOT 2
- 보미(동영상 재생기)에서 Space 가 무시되는(?) 문제. HOT 6
- Wine : Total Commander 에서 키패드 + 문제. HOT 4
- 한자를 연이어 입력할 때 한자창에 이전 한자가 나타나는 문제. HOT 1
- 한자창에 표시되는 한자(또는 특수문자)가 네 글자만 표시되는 때가 있습니다. HOT 2
- 한자창 기본 커서 위치 문제. HOT 2
- 우분투 Unity 런처에서 한글 변환이 되었다 안되었다 하는 증상이 나타납니다. HOT 2
- Evince 실행 안됨 HOT 7
- Enpass(Password Manager) 에서 한/영 전환 불가. HOT 2
- 우분투 글은 우분투에서 답글 다실거지 이곳에 그것도 닫은 이슈에서 하신이유가 무엇인가요? HOT 1
- 다솜 1.2.2버전 이후 브라우저 입력 불가 문제 HOT 4
- 사용 중 dasom-daemon 이 죽습니다. HOT 20
- 안녕하세요. 다솜 입력기 사용하다가 한가지 문제가 생긴듯하여...질문좀 드립니다... HOT 12
- 크로미움이 실행이 안됩니다. HOT 2
- Lubuntu 16.04에서 다솜 한글 입력 HOT 7
- make error
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dasom.