2012-10-18 4 views
1

WebkitWebView에서 "enable-caret-browsing"옵션을 설정하면 스크린에 나타나는 텍스트 행과 관련하여 캐럿을 프로그래밍 방식으로 이동할 수 있습니까? 예를 들어, DOM 노드의 끝으로 이동하지 않고 시각적 인 선의 끝으로 이동하십시오.webkit-gtk에서 캐럿 이동

이 동작은 키보드 탐색 (예 : End 키가 시각적 줄 끝으로 이동)을 통해 액세스 할 수 있지만이 경우 API에서 아무 것도 찾을 수 없습니다.

답변

0

아마도 move-cursor 신호가 방출 되나요?

gboolean result; 
g_signal_emit_by_name(view, "move-cursor", GTK_MOVEMENT_DISPLAY_LINE_ENDS, +1, &result); 

이 기능이 작동하는지 궁금합니다.

+0

다음과 같이 어설 션을 제공합니다. 중요 ** : gboolean webkit_web_view_real_move_cursor (WebKitWebView *, GtkMovementStep, gint) : assertion'step == GTK_MOVEMENT_VISUAL_POSITIONS || step == GTK_MOVEMENT_DISPLAY_LINES || step == GTK_MOVEMENT_PAGES || step == GTK_MOVEMENT_BUFFER_ENDS '실패했습니다. 흥미롭게도 GTK_MOVEMENT_DISPLAY_LINES를 사용하도록 변경하면 캐럿을 이동하는 대신 페이지를 아래로 스크롤합니다. –

+0

흠. 아직 GTK_MOVEMENT_DISPLAY_LINE_ENDS을 (를) 구현하지 않은 것으로 보입니다. 아마도 Webkit-GTK 소스를 살펴보고 무슨 일이 일어나고 있는지 살펴볼 수있을 것입니다. – ptomato

+0

나는 그렇게했으며, 실제로 "move-cursor"에 연결된 함수는 스크롤 만하는 것처럼 보입니다. 내가 아직 발견 할 수 없었던 것은 enable-caret-browsing이 가능할 때 모션 키 (화살표 키, 집/끝 등)를 눌러 캐럿을 이동시키는 것입니다. –