Implement getting message selection for quoting and selection in WK2.
* src/client/conversation-viewer/conversation-web-view.vala (ConversationWebView): Remove has_selection method since we are using the signal to specify if a selection was found or not. Update call sites to use that. (ConversationWebView::get_selection_for_find, ConversationWebView::get_selection_for_quoting): Implement using calls to web process JS methods. * src/client/application/geary-controller.vala (GearyController::create_reply_forward_widget): If we have a possible message view to quote from, handle constructing the compser widget asynchronously, when we know if we have a quote or not. * src/client/conversation-viewer/conversation-viewer.vala: (ConversationViewer::on_find_mode_changed): Handle getting text selection for finds asynchonously. * src/client/components/client-web-view.vala (ClientWebView::get_string_result): New helper for getting string values from JS calls. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail::get_selection_for_quoting, ConversationEmail::get_selection_for_find): Handxle errors when obtaining selections from a message view. * src/client/conversation-viewer/conversation-message.vala: Remove methods that were simply passed through to the web view anyway. Update call sies. * src/client/web-process/util-conversation.vala: Port all remaining functions to JS, remove. * bindings/vapi/javascriptcore-4.0.vapi: Add methods needed to get strings out of WebKit.JavascriptResult instances. * ui/conversation-web-view.js: Implement selection functions in JS, minor cleanup.
This commit is contained in:
parent
3f90f7785a
commit
5b8c68f5fa
10 changed files with 137 additions and 127 deletions
|
|
@ -19,6 +19,9 @@ namespace JS {
|
|||
[CCode (cname = "JSValueToNumber")]
|
||||
public double to_number(JS.Value value, out JS.Value exception);
|
||||
|
||||
[CCode (cname = "JSValueToStringCopy")]
|
||||
public String to_string_copy(JS.Value value, out JS.Value exception);
|
||||
|
||||
[CCode (cname = "JSGlobalContextRelease")]
|
||||
public bool release();
|
||||
}
|
||||
|
|
@ -68,6 +71,21 @@ namespace JS {
|
|||
|
||||
[CCode (cname = "JSStringCreateWithUTF8CString")]
|
||||
public String.create_with_utf8_cstring(string str);
|
||||
|
||||
|
||||
[CCode (cname = "JSStringGetLength")]
|
||||
public int String.get_length();
|
||||
|
||||
[CCode (cname = "JSStringGetMaximumUTF8CStringSize")]
|
||||
public int String.get_maximum_utf8_cstring_size();
|
||||
|
||||
[CCode (cname = "JSStringGetUTF8CString")]
|
||||
public void String.get_utf8_cstring(string* buffer, int bufferSize);
|
||||
|
||||
[CCode (cname = "JSStringRetain")]
|
||||
public void String.retain();
|
||||
|
||||
[CCode (cname = "JSStringRelease")]
|
||||
public void String.release();
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue