[geary] Update fix for broken composer after clicking on mailto links.
- From: Michael Gratton <mjog src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary] Update fix for broken composer after clicking on mailto links.
- Date: Wed, 7 Feb 2018 04:44:39 +0000 (UTC)
commit 63668c14099358f5a131f97f7db57933d1dcca9e
Author: Michael James Gratton <mike vee net>
Date: Wed Feb 7 15:44:20 2018 +1100
Update fix for broken composer after clicking on mailto links.
This updates commit 89c54dba to use fix suggested by Carlos Garcia Campos
in the WebKitGTK bug.
Bug 771504.
src/client/application/geary-controller.vala | 13 +------------
src/client/components/client-web-view.vala | 11 ++++++++++-
2 files changed, 11 insertions(+), 13 deletions(-)
---
diff --git a/src/client/application/geary-controller.vala b/src/client/application/geary-controller.vala
index fcbd682..41f2d9a 100644
--- a/src/client/application/geary-controller.vala
+++ b/src/client/application/geary-controller.vala
@@ -2862,18 +2862,7 @@ public class GearyController : Geary.BaseObject {
private void on_link_activated(string uri) {
if (uri.down().has_prefix(Geary.ComposedEmail.MAILTO_SCHEME)) {
- // We need to invoke this from idle to break the call
- // chain from the WebKit signal which originally caused
- // this handler to be invoked, otherwise the WebKit
- // WebProcess will deadlock, and the resulting composer
- // will be useless. See Geary Bug 771504
- // <https://bugzilla.gnome.org/show_bug.cgi?id=771504>
- // and WebKitGTK Bug 182528
- // <https://bugs.webkit.org/show_bug.cgi?id=182528>
- Idle.add(() => {
- compose_mailto(uri);
- return Source.REMOVE;
- });
+ compose_mailto(uri);
} else {
open_uri(uri);
}
diff --git a/src/client/components/client-web-view.vala b/src/client/components/client-web-view.vala
index adf5885..1d34516 100644
--- a/src/client/components/client-web-view.vala
+++ b/src/client/components/client-web-view.vala
@@ -475,8 +475,17 @@ public class ClientWebView : WebKit.WebView {
case WebKit.NavigationType.LINK_CLICKED:
// Let the app know a user activated a link, but don't
// try to load it ourselves.
- link_activated(nav_action.get_request().uri);
+
+ // We need to call ignore() before emitting the signal
+ // to unblock the WebKit WebProcess, otherwise the
+ // call chain for mailto links will cause the
+ // WebProcess to deadlock, and the resulting composer
+ // will be useless. See Geary Bug 771504
+ // <https://bugzilla.gnome.org/show_bug.cgi?id=771504>
+ // and WebKitGTK Bug 182528
+ // <https://bugs.webkit.org/show_bug.cgi?id=182528>
policy.ignore();
+ link_activated(nav_action.get_request().uri);
break;
default:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]