summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2023-04-26 16:48:35 +0200
committerMilan Crha <mcrha@redhat.com>2023-04-26 16:48:35 +0200
commit5c4d8a57f3e717090dc47346c123514dcfd425a4 (patch)
tree94039fb1e8808a73352d00dc36334e6c73563844
parenta115075072b1ac4779cbae8868f03f735818f828 (diff)
downloadevolution-5c4d8a57f3e717090dc47346c123514dcfd425a4.tar.gz
I#2332 - Mail: Recalc preview iframe heights more often
Closes https://gitlab.gnome.org/GNOME/evolution/-/issues/2332
-rw-r--r--src/e-util/e-web-view.c13
-rw-r--r--src/mail/e-mail-display.c4
2 files changed, 17 insertions, 0 deletions
diff --git a/src/e-util/e-web-view.c b/src/e-util/e-web-view.c
index 80c41abb15..f9602cc289 100644
--- a/src/e-util/e-web-view.c
+++ b/src/e-util/e-web-view.c
@@ -135,6 +135,7 @@ enum {
URI_REQUESTED,
CONTENT_LOADED,
BEFORE_POPUP_EVENT,
+ RESOURCE_LOADED,
LAST_SIGNAL
};
@@ -906,6 +907,7 @@ web_view_uri_request_done_cb (GObject *source_object,
gpointer user_data)
{
WebKitURISchemeRequest *request = user_data;
+ WebKitWebView *web_view;
GInputStream *stream = NULL;
gint64 stream_length = -1;
gchar *mime_type = NULL;
@@ -927,6 +929,9 @@ web_view_uri_request_done_cb (GObject *source_object,
g_free (mime_type);
}
+ web_view = webkit_uri_scheme_request_get_web_view (request);
+ g_signal_emit (web_view, signals[RESOURCE_LOADED], 0, NULL);
+
g_object_unref (request);
}
@@ -2424,6 +2429,14 @@ e_web_view_class_init (EWebViewClass *class)
G_STRUCT_OFFSET (EWebViewClass, content_loaded),
NULL, NULL, NULL,
G_TYPE_NONE, 1, G_TYPE_STRING);
+
+ signals[RESOURCE_LOADED] = g_signal_new (
+ "resource-loaded",
+ G_TYPE_FROM_CLASS (class),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 0, G_TYPE_NONE);
}
static void
diff --git a/src/mail/e-mail-display.c b/src/mail/e-mail-display.c
index 8b52eb0193..b9786f05a4 100644
--- a/src/mail/e-mail-display.c
+++ b/src/mail/e-mail-display.c
@@ -2725,6 +2725,10 @@ e_mail_display_init (EMailDisplay *display)
display, "process-mailto",
G_CALLBACK (mail_display_process_mailto), NULL);
+ g_signal_connect (
+ display, "resource-loaded",
+ G_CALLBACK (mail_display_schedule_iframes_height_update), NULL);
+
g_signal_connect_after (
display, "drag-data-get",
G_CALLBACK (mail_display_drag_data_get), display);