Resolves: #2187653 (itip-formatter: iframe height miscalculated without frame flattening)

This commit is contained in:
Milan Crha 2023-04-20 14:07:00 +02:00
commit 37486d244c
2 changed files with 98 additions and 1 deletions

View file

@ -397,3 +397,97 @@ index d43d2fcbb6..052260d4a0 100644
read = camel_stream_read (closure->read_stream, buffer, nbuffer, closure->cancellable, &closure->error);
if (read < 0 || closure->error)
diff --git a/data/webkit/e-web-view.js b/data/webkit/e-web-view.js
index 058b4e578c..d44bb0b403 100644
--- a/data/webkit/e-web-view.js
+++ b/data/webkit/e-web-view.js
@@ -786,12 +786,12 @@ Evo.mailDisplayUpdateIFramesHeightRecursive = function(doc)
Evo.mailDisplayUpdateIFramesHeightRecursive(iframes[ii].contentDocument);
}
- if (!doc.body || !doc.defaultView || !doc.defaultView.frameElement)
+ if (!doc.scrollingElement || !doc.defaultView || !doc.defaultView.frameElement)
return;
- if (doc.defaultView.frameElement.height == doc.body.scrollHeight)
+ if (doc.defaultView.frameElement.height == doc.scrollingElement.scrollHeight)
doc.defaultView.frameElement.height = 10;
- doc.defaultView.frameElement.height = doc.body.scrollHeight + 2 + (doc.body.scrollWidth > doc.body.clientWidth ? 20 : 0);
+ doc.defaultView.frameElement.height = doc.scrollingElement.scrollHeight + 2 + (doc.scrollingElement.scrollWidth > doc.scrollingElement.clientWidth ? 20 : 0);
}
Evo.MailDisplayUpdateIFramesHeight = function()
@@ -1418,8 +1418,10 @@ EvoItip.SetElementInnerHTML = function(iframe_id, element_id, html_content)
{
var elem = Evo.FindElement(iframe_id, element_id);
- if (elem)
+ if (elem) {
elem.innerHTML = html_content;
+ window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0);
+ }
}
EvoItip.SetShowCheckbox = function(iframe_id, element_id, show, update_second)
@@ -1445,6 +1447,8 @@ EvoItip.SetShowCheckbox = function(iframe_id, element_id, show, update_second)
if (elem) {
elem.hidden = !show;
}
+
+ window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0);
}
}
@@ -1458,6 +1462,8 @@ EvoItip.SetAreaText = function(iframe_id, element_id, text)
if (row.lastElementChild) {
row.lastElementChild.innerHTML = text;
}
+
+ window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0);
}
}
@@ -1475,6 +1481,8 @@ EvoItip.UpdateTimes = function(iframe_id, element_id, header, label)
if (elem.lastElementChild) {
elem.lastElementChild.innerHTML = label;
}
+
+ window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0);
}
}
@@ -1502,6 +1510,8 @@ EvoItip.AppendInfoRow = function(iframe_id, table_id, row_id, icon_name, message
cell = row.insertCell(-1);
cell.innerHTML = message;
+
+ window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0);
}
EvoItip.RemoveInfoRow = function(iframe_id, row_id)
@@ -1510,6 +1520,7 @@ EvoItip.RemoveInfoRow = function(iframe_id, row_id)
if (row && row.parentNode) {
row.parentNode.removeChild(row);
+ window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0);
}
}
@@ -1521,6 +1532,8 @@ EvoItip.RemoveChildNodes = function(iframe_id, element_id)
while (elem.lastChild) {
elem.removeChild(elem.lastChild);
}
+
+ window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0);
}
}
@@ -1573,6 +1586,8 @@ EvoItip.HideButtons = function(iframe_id, element_id)
if (button)
button.hidden = true;
}
+
+ window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0);
}
}

View file

@ -45,7 +45,7 @@
Name: evolution
Version: 3.44.4
Release: 2%{?dist}
Release: 3%{?dist}
Summary: Mail and calendar client for GNOME
License: GPLv2+ and GFDL
URL: https://wiki.gnome.org/Apps/Evolution
@ -573,6 +573,9 @@ grep -v "%{_datadir}/locale" evolution.lang > help.lang
%endif
%changelog
* Thu Apr 20 2023 Milan Crha <mcrha@redhat.com> - 3.44.4-3
- Resolves: #2187653 (itip-formatter: iframe height miscalculated without frame flattening)
* Wed Sep 14 2022 Milan Crha <mcrha@redhat.com> - 3.44.4-2
- Add patch to handle frame flattening change in WebKitGTK