Update to 3.48.3

This commit is contained in:
Milan Crha 2023-06-02 08:59:30 +02:00
parent 6118b98b2f
commit b2c19b10ca
4 changed files with 6 additions and 152 deletions

View File

@ -1,44 +0,0 @@
diff --git a/data/webkit/e-web-view.js b/data/webkit/e-web-view.js
index b0eab4ac09..c811c479db 100644
--- a/data/webkit/e-web-view.js
+++ b/data/webkit/e-web-view.js
@@ -760,6 +760,20 @@ Evo.EnsureMainDocumentInitialized = function()
Evo.initializeAndPostContentLoaded(null);
}
+Evo.mailDisplayGetScrollbarHeight = function()
+{
+ if (Evo.mailDisplayCachedScrollbarHeight != undefined)
+ return Evo.mailDisplayCachedScrollbarHeight;
+
+ var el = document.createElement("div");
+ el.style.cssText = "overflow:scroll; visibility:hidden; position:absolute;";
+ document.body.appendChild(el);
+ Evo.mailDisplayCachedScrollbarHeight = el.offsetHeight - el.clientHeight
+ el.remove();
+
+ return Evo.mailDisplayCachedScrollbarHeight;
+}
+
Evo.mailDisplayUpdateIFramesHeightRecursive = function(doc)
{
if (!doc)
@@ -779,7 +793,8 @@ Evo.mailDisplayUpdateIFramesHeightRecursive = function(doc)
if (doc.defaultView.frameElement.height == doc.scrollingElement.scrollHeight)
doc.defaultView.frameElement.height = 10;
- doc.defaultView.frameElement.height = doc.scrollingElement.scrollHeight + 2 + (doc.scrollingElement.scrollWidth > doc.scrollingElement.clientWidth ? 20 : 0);
+ doc.defaultView.frameElement.height = doc.scrollingElement.scrollHeight + 2 +
+ (doc.scrollingElement.scrollWidth > doc.scrollingElement.clientWidth ? Evo.mailDisplayGetScrollbarHeight() : 0);
}
Evo.MailDisplayUpdateIFramesHeight = function()
@@ -1186,7 +1201,7 @@ Evo.mailDisplaySizeChanged = function(entries, observer)
if (value < entry.target.ownerDocument.scrollingElement.scrollHeight)
value = entry.target.ownerDocument.scrollingElement.scrollHeight;
if (entry.target.ownerDocument.scrollingElement.scrollWidth > entry.target.ownerDocument.scrollingElement.clientWidth)
- value += 20;
+ value += Evo.mailDisplayGetScrollbarHeight();
entry.target.ownerDocument.defaultView.frameElement.height = value;
}
}

View File

@ -1,99 +0,0 @@
diff --git a/data/webkit/e-web-view.js b/data/webkit/e-web-view.js
index c811c479db..032287fd73 100644
--- a/data/webkit/e-web-view.js
+++ b/data/webkit/e-web-view.js
@@ -760,6 +760,24 @@ Evo.EnsureMainDocumentInitialized = function()
Evo.initializeAndPostContentLoaded(null);
}
+Evo.mailDisplaySetIFrameHeight = function(iframe, height, forWidth, force)
+{
+ if (!force && iframe.hasAttribute("x-evo-height-for-width") && iframe.hasAttribute("x-evo-cached-height")) {
+ var heightForWidth = parseInt(iframe.getAttribute("x-evo-height-for-width"));
+ if (heightForWidth == forWidth) {
+ var cachedHeight = parseInt(iframe.getAttribute("x-evo-cached-height"));
+ if (cachedHeight > 0) {
+ iframe.height = cachedHeight;
+ return;
+ }
+ }
+ }
+
+ iframe.setAttribute("x-evo-height-for-width", forWidth);
+ iframe.setAttribute("x-evo-cached-height", height);
+ iframe.height = height;
+}
+
Evo.mailDisplayGetScrollbarHeight = function()
{
if (Evo.mailDisplayCachedScrollbarHeight != undefined)
@@ -779,7 +797,7 @@ Evo.mailDisplayUpdateIFramesHeightRecursive = function(doc)
if (!doc)
return;
- var ii, iframes;
+ var ii, iframes, force = false;
iframes = doc.getElementsByTagName("iframe");
@@ -791,20 +809,27 @@ Evo.mailDisplayUpdateIFramesHeightRecursive = function(doc)
if (!doc.scrollingElement || !doc.defaultView || !doc.defaultView.frameElement)
return;
- if (doc.defaultView.frameElement.height == doc.scrollingElement.scrollHeight)
+ if (doc.defaultView.frameElement.height == doc.scrollingElement.scrollHeight) {
doc.defaultView.frameElement.height = 10;
- doc.defaultView.frameElement.height = doc.scrollingElement.scrollHeight + 2 +
- (doc.scrollingElement.scrollWidth > doc.scrollingElement.clientWidth ? Evo.mailDisplayGetScrollbarHeight() : 0);
+ force = true;
+ }
+
+ Evo.mailDisplaySetIFrameHeight(doc.defaultView.frameElement, doc.scrollingElement.scrollHeight + 2 +
+ (doc.scrollingElement.scrollWidth > doc.scrollingElement.clientWidth ? Evo.mailDisplayGetScrollbarHeight() : 0),
+ doc.scrollingElement.clientWidth, force);
}
Evo.MailDisplayUpdateIFramesHeight = function()
{
+ var scrollx = document.defaultView ? document.defaultView.scrollX : -1;
var scrolly = document.defaultView ? document.defaultView.scrollY : -1;
Evo.mailDisplayUpdateIFramesHeightRecursive(document);
- if (scrolly != -1 && document.defaultView.scrollY != scrolly)
- document.defaultView.scrollTo(0, scrolly);
+ if (scrollx != -1 && scrolly != -1 && (
+ document.defaultView.scrollX != scrollx ||
+ document.defaultView.scrollY != scrolly))
+ document.defaultView.scrollTo(scrollx, scrolly);
Evo.mailDisplayResizeContentToPreviewWidth();
Evo.mailDisplayUpdateMagicSpacebarState();
@@ -1194,6 +1219,9 @@ Evo.unsetHTMLColors = function(doc)
Evo.mailDisplaySizeChanged = function(entries, observer)
{
+ var scrollx = document.defaultView ? document.defaultView.scrollX : -1;
+ var scrolly = document.defaultView ? document.defaultView.scrollY : -1;
+
for (const entry of entries) {
if (entry.target.ownerDocument.defaultView.frameElement && entry.borderBoxSize?.length > 0) {
var value = entry.borderBoxSize[0].blockSize;
@@ -1202,9 +1230,15 @@ Evo.mailDisplaySizeChanged = function(entries, observer)
value = entry.target.ownerDocument.scrollingElement.scrollHeight;
if (entry.target.ownerDocument.scrollingElement.scrollWidth > entry.target.ownerDocument.scrollingElement.clientWidth)
value += Evo.mailDisplayGetScrollbarHeight();
- entry.target.ownerDocument.defaultView.frameElement.height = value;
+ Evo.mailDisplaySetIFrameHeight(entry.target.ownerDocument.defaultView.frameElement, value,
+ entry.target.ownerDocument.scrollingElement.clientWidth, false);
}
}
+
+ if (scrollx != -1 && scrolly != -1 && (
+ document.defaultView.scrollX != scrollx ||
+ document.defaultView.scrollY != scrolly))
+ document.defaultView.scrollTo(scrollx, scrolly);
}
Evo.MailDisplayBindDOM = function(iframe_id, markCitationColor)

View File

@ -43,8 +43,8 @@
### Abstract ###
Name: evolution
Version: 3.48.2
Release: 3%{?dist}
Version: 3.48.3
Release: 1%{?dist}
Summary: Mail and calendar client for GNOME
License: GPL-2.0-or-later AND GFDL-1.3-or-later
URL: https://wiki.gnome.org/Apps/Evolution
@ -52,12 +52,6 @@ Source: http://download.gnome.org/sources/%{name}/3.48/%{name}-%{version}.tar.xz
Source1: flatpak-evolution-fix-service-names.sh
Source2: flatpak-evolution-wrapper.sh.in
# https://gitlab.gnome.org/GNOME/evolution/-/issues/2380
Patch01: 0001-Mail-Preview-content-sometimes-grows-indefinitely.patch
# https://gitlab.gnome.org/GNOME/evolution/-/issues/2382
Patch02: 0002-I-2382-Mail-Workaround-recursion-in-iframe-height-co.patch
# Approximate version number
Provides: bundled(libgnomecanvas) = 2.30.0
@ -584,6 +578,9 @@ grep -v "%{_datadir}/locale" evolution.lang > help.lang
%endif
%changelog
* Fri Jun 02 2023 Milan Crha <mcrha@redhat.com> - 3.48.3-1
- Update to 3.48.3
* Tue May 30 2023 Milan Crha <mcrha@redhat.com> - 3.48.2-3
- Add patch to workaround recursion in iframe height computation in mail preview

View File

@ -1 +1 @@
SHA512 (evolution-3.48.2.tar.xz) = d6d0af82fa31550a5657854c310ee2a00892bb9d0b7e3ace419880426315e66bc6c02dc6b7d3c4559e23d02b340e84054fc1e54fedeb08cddd035e9140f24a85
SHA512 (evolution-3.48.3.tar.xz) = 80af99d5351cc8303db1ed55f84473c1b8dd08eefa04370510a4fb249b3bb514e6c9ca2b650ef04b240c413b1e4f23388c5aa4493df74dc0ebabfdb115ceef58