pidgin/gtkwebview.c

changeset 35129
22dca763eeef
parent 35047
cf8ca70094ff
child 35194
9a0203562da5
equal deleted inserted replaced
35128:7092c0b4cfc5 35129:22dca763eeef
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

mercurial