| 2056 return webkit_dom_range_get_text(range); |
2056 return webkit_dom_range_get_text(range); |
| 2057 else |
2057 else |
| 2058 return NULL; |
2058 return NULL; |
| 2059 } |
2059 } |
| 2060 |
2060 |
| |
2061 void |
| |
2062 gtk_webview_get_caret(GtkWebView *webview, WebKitDOMNode **container_ret, |
| |
2063 glong *pos_ret) |
| |
2064 { |
| |
2065 WebKitDOMDocument *dom; |
| |
2066 WebKitDOMDOMWindow *win; |
| |
2067 WebKitDOMDOMSelection *sel; |
| |
2068 WebKitDOMRange *range = NULL; |
| |
2069 WebKitDOMNode *start_container, *end_container; |
| |
2070 glong start, end; |
| |
2071 |
| |
2072 g_return_if_fail(webview && container_ret && pos_ret); |
| |
2073 |
| |
2074 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview)); |
| |
2075 win = webkit_dom_document_get_default_view(dom); |
| |
2076 sel = webkit_dom_dom_window_get_selection(win); |
| |
2077 if (webkit_dom_dom_selection_get_range_count(sel)) |
| |
2078 range = webkit_dom_dom_selection_get_range_at(sel, 0, NULL); |
| |
2079 |
| |
2080 if (range) { |
| |
2081 start_container = webkit_dom_range_get_start_container(range, NULL); |
| |
2082 start = webkit_dom_range_get_start_offset(range, NULL); |
| |
2083 end_container = webkit_dom_range_get_end_container(range, NULL); |
| |
2084 end = webkit_dom_range_get_end_offset(range, NULL); |
| |
2085 |
| |
2086 if (start == end && |
| |
2087 webkit_dom_node_is_same_node(start_container, end_container)) { |
| |
2088 |
| |
2089 *container_ret = start_container; |
| |
2090 *pos_ret = start; |
| |
2091 return; |
| |
2092 } |
| |
2093 } |
| |
2094 |
| |
2095 *container_ret = NULL; |
| |
2096 *pos_ret = -1; |
| |
2097 } |
| |
2098 |
| |
2099 void |
| |
2100 gtk_webview_set_caret(GtkWebView *webview, WebKitDOMNode *container, glong pos) |
| |
2101 { |
| |
2102 WebKitDOMDocument *dom; |
| |
2103 WebKitDOMDOMWindow *win; |
| |
2104 WebKitDOMDOMSelection *sel; |
| |
2105 |
| |
2106 g_return_if_fail(webview && container && pos >= 0); |
| |
2107 |
| |
2108 dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(webview)); |
| |
2109 win = webkit_dom_document_get_default_view(dom); |
| |
2110 sel = webkit_dom_dom_window_get_selection(win); |
| |
2111 |
| |
2112 webkit_dom_dom_selection_set_position(sel, container, pos, NULL); |
| |
2113 } |
| |
2114 |
| 2061 GtkWebViewButtons |
2115 GtkWebViewButtons |
| 2062 gtk_webview_get_format_functions(GtkWebView *webview) |
2116 gtk_webview_get_format_functions(GtkWebView *webview) |
| 2063 { |
2117 { |
| 2064 GtkWebViewPriv *priv; |
2118 GtkWebViewPriv *priv; |
| 2065 |
2119 |