File evolution-height-miscalculation.patch of Package evolution
From a037d582a27ecb3bb8f51fbe0f597d9183e75701 Mon Sep 17 00:00:00 2001
From: Milan Crha <mcrha@redhat.com>
Date: Tue, 3 Jan 2023 18:22:20 +0100
Subject: [PATCH] I#2204 - itip-formatter: iframe height miscalculated without
frame flattening
Closes https://gitlab.gnome.org/GNOME/evolution/-/issues/2204
---
data/webkit/e-web-view.js | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/data/webkit/e-web-view.js b/data/webkit/e-web-view.js
index 309cada00f..ab9ca5a6d5 100644
--- a/data/webkit/e-web-view.js
+++ b/data/webkit/e-web-view.js
@@ -789,12 +789,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()
@@ -1421,8 +1421,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)
@@ -1448,6 +1450,8 @@ EvoItip.SetShowCheckbox = function(iframe_id, element_id, show, update_second)
if (elem) {
elem.hidden = !show;
}
+
+ window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0);
}
}
@@ -1461,6 +1465,8 @@ EvoItip.SetAreaText = function(iframe_id, element_id, text)
if (row.lastElementChild) {
row.lastElementChild.innerHTML = text;
}
+
+ window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0);
}
}
@@ -1478,6 +1484,8 @@ EvoItip.UpdateTimes = function(iframe_id, element_id, header, label)
if (elem.lastElementChild) {
elem.lastElementChild.innerHTML = label;
}
+
+ window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0);
}
}
@@ -1505,6 +1513,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)
@@ -1513,6 +1523,7 @@ EvoItip.RemoveInfoRow = function(iframe_id, row_id)
if (row && row.parentNode) {
row.parentNode.removeChild(row);
+ window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0);
}
}
@@ -1524,6 +1535,8 @@ EvoItip.RemoveChildNodes = function(iframe_id, element_id)
while (elem.lastChild) {
elem.removeChild(elem.lastChild);
}
+
+ window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0);
}
}
@@ -1576,6 +1589,8 @@ EvoItip.HideButtons = function(iframe_id, element_id)
if (button)
button.hidden = true;
}
+
+ window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0);
}
}
--
2.41.0