import evolution-3.28.5-22.el8
This commit is contained in:
parent
f36aab9df4
commit
6d36ca0f96
17
SOURCES/evolution-3.28.5-contacts-prefer-orig-value.patch
Normal file
17
SOURCES/evolution-3.28.5-contacts-prefer-orig-value.patch
Normal file
@ -0,0 +1,17 @@
|
||||
diff -up evolution-3.28.5/src/addressbook/gui/widgets/eab-contact-merging.c.contacts-prefer-orig-value evolution-3.28.5/src/addressbook/gui/widgets/eab-contact-merging.c
|
||||
--- evolution-3.28.5/src/addressbook/gui/widgets/eab-contact-merging.c.contacts-prefer-orig-value 2018-07-30 15:37:05.000000000 +0200
|
||||
+++ evolution-3.28.5/src/addressbook/gui/widgets/eab-contact-merging.c 2022-09-15 08:19:23.228037822 +0200
|
||||
@@ -512,7 +512,12 @@ mergeit (EContactMergingLookup *lookup)
|
||||
G_CALLBACK (dropdown_changed), data);
|
||||
g_object_set_data_full (G_OBJECT (dropdown), "eab-contact-merging::dropdown-data", data, g_free);
|
||||
|
||||
- if (field == E_CONTACT_NICKNAME || field == E_CONTACT_GIVEN_NAME || field == E_CONTACT_FAMILY_NAME || field == E_CONTACT_FULL_NAME)
|
||||
+ /* Only prefer the original value when it's filled */
|
||||
+ if (string1 && *string1 && (
|
||||
+ field == E_CONTACT_NICKNAME ||
|
||||
+ field == E_CONTACT_GIVEN_NAME ||
|
||||
+ field == E_CONTACT_FAMILY_NAME ||
|
||||
+ field == E_CONTACT_FULL_NAME))
|
||||
gtk_combo_box_set_active (GTK_COMBO_BOX (dropdown), 1);
|
||||
else
|
||||
gtk_combo_box_set_active (GTK_COMBO_BOX (dropdown), 0);
|
583
SOURCES/evolution-3.28.5-frame-flattenning.patch
Normal file
583
SOURCES/evolution-3.28.5-frame-flattenning.patch
Normal file
@ -0,0 +1,583 @@
|
||||
diff -up evolution-3.28.5/data/webview.css.frame-flattenning evolution-3.28.5/data/webview.css
|
||||
--- evolution-3.28.5/data/webview.css.frame-flattenning 2018-07-30 15:37:05.000000000 +0200
|
||||
+++ evolution-3.28.5/data/webview.css 2023-01-04 09:25:06.252929132 +0100
|
||||
@@ -8,8 +8,8 @@ img {
|
||||
}
|
||||
|
||||
body {
|
||||
- /* Use margin so that children can safely use width=100% */
|
||||
- margin: 5px 10px 5px 10px;
|
||||
+ /* Use padding so that children can safely use width=100% */
|
||||
+ padding: 8px;
|
||||
}
|
||||
|
||||
th {
|
||||
@@ -30,21 +30,21 @@ img#__evo-contact-photo {
|
||||
|
||||
img.navigable {
|
||||
cursor: pointer;
|
||||
- margin-right: 4px;
|
||||
+ padding-right: 4px;
|
||||
}
|
||||
|
||||
.attachments {
|
||||
background: #FFF;
|
||||
border: 1px solid silver;
|
||||
- margin: 10px 10px 10px 10px;
|
||||
+ padding: 10px 10px 10px 10px;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.attachment {
|
||||
- margin-left: 8px;
|
||||
- margin-right: 0px;
|
||||
+ padding-left: 8px;
|
||||
+ padding-right: 0px;
|
||||
}
|
||||
|
||||
.attachment td {
|
||||
@@ -58,21 +58,21 @@ iframe:not([id$=".itip"]) {
|
||||
|
||||
.part-container {
|
||||
height: 100%;
|
||||
- margin-top: 2px;
|
||||
- margin-bottom: 2px;
|
||||
+ padding: 0px;
|
||||
}
|
||||
|
||||
.part-container-nostyle iframe {
|
||||
- margin-right: 10px;
|
||||
+ margin: 0px;
|
||||
+ padding: 0px;
|
||||
}
|
||||
|
||||
.part-container-inner-margin {
|
||||
- margin: 8px;
|
||||
+ padding: 0px;
|
||||
}
|
||||
|
||||
object { /* GtkWidgets */
|
||||
- margin-top: 2px;
|
||||
- margin-bottom: 2px;
|
||||
+ padding-top: 2px;
|
||||
+ padding-bottom: 2px;
|
||||
}
|
||||
|
||||
.__evo-highlight {
|
||||
@@ -139,7 +139,7 @@ th.rtl {
|
||||
/***** PRINTING *******/
|
||||
|
||||
.printing-header {
|
||||
- margin-bottom: 20px;
|
||||
+ padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.printing-header h1,
|
||||
@@ -159,7 +159,7 @@ th.rtl {
|
||||
/******* ITIP *********/
|
||||
.itip.icon {
|
||||
float: left;
|
||||
- margin-right: 5px;
|
||||
+ padding-right: 5px;
|
||||
}
|
||||
|
||||
.itip.content {
|
||||
@@ -168,7 +168,7 @@ th.rtl {
|
||||
}
|
||||
|
||||
.itip.description {
|
||||
- margin: 5px;
|
||||
+ padding: 5px;
|
||||
}
|
||||
|
||||
.itip tr {
|
||||
@@ -192,7 +192,7 @@ th.rtl {
|
||||
}
|
||||
|
||||
#table_row_buttons img {
|
||||
- margin-right: 5px;
|
||||
+ padding-right: 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
diff -up evolution-3.28.5/src/em-format/e-mail-formatter-text-plain.c.frame-flattenning evolution-3.28.5/src/em-format/e-mail-formatter-text-plain.c
|
||||
--- evolution-3.28.5/src/em-format/e-mail-formatter-text-plain.c.frame-flattenning 2018-07-30 15:37:05.000000000 +0200
|
||||
+++ evolution-3.28.5/src/em-format/e-mail-formatter-text-plain.c 2023-01-04 09:25:06.252929132 +0100
|
||||
@@ -111,7 +111,7 @@ emfe_text_plain_format (EMailFormatterEx
|
||||
string =
|
||||
"<div class=\"part-container pre "
|
||||
"-e-web-view-background-color -e-web-view-text-color\" "
|
||||
- "style=\"border: none; padding: 8px; margin: 0;\">";
|
||||
+ "style=\"border: none; padding: 0px; margin: 0;\">";
|
||||
|
||||
g_output_stream_write_all (
|
||||
stream, string, strlen (string),
|
||||
diff -up evolution-3.28.5/src/mail/e-mail-display.c.frame-flattenning evolution-3.28.5/src/mail/e-mail-display.c
|
||||
--- evolution-3.28.5/src/mail/e-mail-display.c.frame-flattenning 2018-07-30 15:37:05.000000000 +0200
|
||||
+++ evolution-3.28.5/src/mail/e-mail-display.c 2023-01-04 09:25:06.252929132 +0100
|
||||
@@ -1529,6 +1529,19 @@ mail_display_set_fonts (EWebView *web_vi
|
||||
mail_display_get_font_settings (display->priv->settings, monospace, variable);
|
||||
}
|
||||
|
||||
+static gboolean
|
||||
+mail_display_can_use_frame_flattening (void)
|
||||
+{
|
||||
+ guint wk_major, wk_minor;
|
||||
+
|
||||
+ wk_major = webkit_get_major_version ();
|
||||
+ wk_minor = webkit_get_minor_version ();
|
||||
+
|
||||
+ /* The 2.38 is the last version, which supports frame-flattening;
|
||||
+ prefer it over the manual and expensive calculations. */
|
||||
+ return (wk_major < 2) || (wk_major == 2 && wk_minor <= 38);
|
||||
+}
|
||||
+
|
||||
static void
|
||||
mail_display_web_view_initialize (WebKitWebView *web_view)
|
||||
{
|
||||
@@ -1536,9 +1549,11 @@ mail_display_web_view_initialize (WebKit
|
||||
|
||||
webkit_settings = webkit_web_view_get_settings (web_view);
|
||||
|
||||
- g_object_set (webkit_settings,
|
||||
- "enable-frame-flattening", TRUE,
|
||||
- NULL);
|
||||
+ if (mail_display_can_use_frame_flattening ()) {
|
||||
+ g_object_set (webkit_settings,
|
||||
+ "enable-frame-flattening", TRUE,
|
||||
+ NULL);
|
||||
+ }
|
||||
}
|
||||
|
||||
static void
|
||||
diff -up evolution-3.28.5/src/modules/itip-formatter/web-extension/module-itip-formatter-web-extension.c.frame-flattenning evolution-3.28.5/src/modules/itip-formatter/web-extension/module-itip-formatter-web-extension.c
|
||||
--- evolution-3.28.5/src/modules/itip-formatter/web-extension/module-itip-formatter-web-extension.c.frame-flattenning 2018-07-30 15:37:05.000000000 +0200
|
||||
+++ evolution-3.28.5/src/modules/itip-formatter/web-extension/module-itip-formatter-web-extension.c 2023-01-04 09:25:06.253929132 +0100
|
||||
@@ -259,7 +259,7 @@ handle_method_call (GDBusConnection *con
|
||||
gpointer user_data)
|
||||
{
|
||||
WebKitWebExtension *web_extension = WEBKIT_WEB_EXTENSION (user_data);
|
||||
- WebKitDOMDocument *document;
|
||||
+ WebKitDOMDocument *document = NULL, *top_document = NULL;
|
||||
const gchar *part_id = NULL;
|
||||
guint64 page_id;
|
||||
|
||||
@@ -281,11 +281,12 @@ handle_method_call (GDBusConnection *con
|
||||
|
||||
g_variant_get (parameters, "(t&s&s)", &page_id, &part_id, &button_id);
|
||||
|
||||
- document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
- if (document)
|
||||
- document = find_webkit_document_for_partid_or_return_dbus_error (invocation, document, part_id);
|
||||
+ top_document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
+ if (top_document)
|
||||
+ document = find_webkit_document_for_partid_or_return_dbus_error (invocation, top_document, part_id);
|
||||
if (document) {
|
||||
module_itip_formatter_dom_utils_show_button (document, button_id);
|
||||
+ e_dom_update_iframe_height (top_document);
|
||||
g_dbus_method_invocation_return_value (invocation, NULL);
|
||||
}
|
||||
} else if (g_strcmp0 (method_name, "EnableButton") == 0) {
|
||||
@@ -306,11 +307,12 @@ handle_method_call (GDBusConnection *con
|
||||
|
||||
g_variant_get (parameters, "(t&s&s&s)", &page_id, &part_id, &element_id, &inner_html);
|
||||
|
||||
- document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
- if (document)
|
||||
- document = find_webkit_document_for_partid_or_return_dbus_error (invocation, document, part_id);
|
||||
+ top_document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
+ if (top_document)
|
||||
+ document = find_webkit_document_for_partid_or_return_dbus_error (invocation, top_document, part_id);
|
||||
if (document) {
|
||||
e_dom_utils_element_set_inner_html (document, element_id, inner_html);
|
||||
+ e_dom_update_iframe_height (top_document);
|
||||
g_dbus_method_invocation_return_value (invocation, NULL);
|
||||
}
|
||||
} else if (g_strcmp0 (method_name, "RemoveElement") == 0) {
|
||||
@@ -318,11 +320,12 @@ handle_method_call (GDBusConnection *con
|
||||
|
||||
g_variant_get (parameters, "(t&s&s)", &page_id, &part_id, &element_id);
|
||||
|
||||
- document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
- if (document)
|
||||
- document = find_webkit_document_for_partid_or_return_dbus_error (invocation, document, part_id);
|
||||
+ top_document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
+ if (top_document)
|
||||
+ document = find_webkit_document_for_partid_or_return_dbus_error (invocation, top_document, part_id);
|
||||
if (document) {
|
||||
e_dom_utils_remove_element (document, element_id);
|
||||
+ e_dom_update_iframe_height (top_document);
|
||||
g_dbus_method_invocation_return_value (invocation, NULL);
|
||||
}
|
||||
} else if (g_strcmp0 (method_name, "ElementRemoveChildNodes") == 0) {
|
||||
@@ -330,11 +333,12 @@ handle_method_call (GDBusConnection *con
|
||||
|
||||
g_variant_get (parameters, "(t&s&s)", &page_id, &part_id, &element_id);
|
||||
|
||||
- document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
- if (document)
|
||||
- document = find_webkit_document_for_partid_or_return_dbus_error (invocation, document, part_id);
|
||||
+ top_document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
+ if (top_document)
|
||||
+ document = find_webkit_document_for_partid_or_return_dbus_error (invocation, top_document, part_id);
|
||||
if (document) {
|
||||
e_dom_utils_element_remove_child_nodes (document, element_id);
|
||||
+ e_dom_update_iframe_height (top_document);
|
||||
g_dbus_method_invocation_return_value (invocation, NULL);
|
||||
}
|
||||
} else if (g_strcmp0 (method_name, "HideElement") == 0) {
|
||||
@@ -343,11 +347,12 @@ handle_method_call (GDBusConnection *con
|
||||
|
||||
g_variant_get (parameters, "(t&s&sb)", &page_id, &part_id, &element_id, &hide);
|
||||
|
||||
- document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
- if (document)
|
||||
- document = find_webkit_document_for_partid_or_return_dbus_error (invocation, document, part_id);
|
||||
+ top_document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
+ if (top_document)
|
||||
+ document = find_webkit_document_for_partid_or_return_dbus_error (invocation, top_document, part_id);
|
||||
if (document) {
|
||||
e_dom_utils_hide_element (document, element_id, hide);
|
||||
+ e_dom_update_iframe_height (top_document);
|
||||
g_dbus_method_invocation_return_value (invocation, NULL);
|
||||
}
|
||||
} else if (g_strcmp0 (method_name, "ElementIsHidden") == 0) {
|
||||
@@ -395,11 +400,12 @@ handle_method_call (GDBusConnection *con
|
||||
|
||||
g_variant_get (parameters, "(t&s&sbb)", &page_id, &part_id, &id, &show, &update_second);
|
||||
|
||||
- document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
- if (document)
|
||||
- document = find_webkit_document_for_partid_or_return_dbus_error (invocation, document, part_id);
|
||||
+ top_document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
+ if (top_document)
|
||||
+ document = find_webkit_document_for_partid_or_return_dbus_error (invocation, top_document, part_id);
|
||||
if (document) {
|
||||
module_itip_formatter_dom_utils_show_checkbox (document, id, show, update_second);
|
||||
+ e_dom_update_iframe_height (top_document);
|
||||
g_dbus_method_invocation_return_value (invocation, NULL);
|
||||
}
|
||||
} else if (g_strcmp0 (method_name, "SetButtonsSensitive") == 0) {
|
||||
@@ -419,11 +425,12 @@ handle_method_call (GDBusConnection *con
|
||||
|
||||
g_variant_get (parameters, "(t&s&s&s)", &page_id, &part_id, &id, &text);
|
||||
|
||||
- document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
- if (document)
|
||||
- document = find_webkit_document_for_partid_or_return_dbus_error (invocation, document, part_id);
|
||||
+ top_document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
+ if (top_document)
|
||||
+ document = find_webkit_document_for_partid_or_return_dbus_error (invocation, top_document, part_id);
|
||||
if (document) {
|
||||
module_itip_formatter_dom_utils_set_area_text (document, id, text);
|
||||
+ e_dom_update_iframe_height (top_document);
|
||||
g_dbus_method_invocation_return_value (invocation, NULL);
|
||||
}
|
||||
} else if (g_strcmp0 (method_name, "ElementSetAccessKey") == 0) {
|
||||
@@ -443,11 +450,12 @@ handle_method_call (GDBusConnection *con
|
||||
|
||||
g_variant_get (parameters, "(t&s&s)", &page_id, &part_id, &element_id);
|
||||
|
||||
- document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
- if (document)
|
||||
- document = find_webkit_document_for_partid_or_return_dbus_error (invocation, document, part_id);
|
||||
+ top_document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
+ if (top_document)
|
||||
+ document = find_webkit_document_for_partid_or_return_dbus_error (invocation, top_document, part_id);
|
||||
if (document) {
|
||||
module_itip_formatter_dom_utils_element_hide_child_nodes (document, element_id);
|
||||
+ e_dom_update_iframe_height (top_document);
|
||||
g_dbus_method_invocation_return_value (invocation, NULL);
|
||||
}
|
||||
} else if (g_strcmp0 (method_name, "EnableSelect") == 0) {
|
||||
@@ -509,11 +517,12 @@ handle_method_call (GDBusConnection *con
|
||||
|
||||
g_variant_get (parameters, "(t&s&s&s&s)", &page_id, &part_id, &element_id, &header, &label);
|
||||
|
||||
- document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
- if (document)
|
||||
- document = find_webkit_document_for_partid_or_return_dbus_error (invocation, document, part_id);
|
||||
+ top_document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
+ if (top_document)
|
||||
+ document = find_webkit_document_for_partid_or_return_dbus_error (invocation, top_document, part_id);
|
||||
if (document) {
|
||||
module_itip_formatter_dom_utils_update_times (document, element_id, header, label);
|
||||
+ e_dom_update_iframe_height (top_document);
|
||||
g_dbus_method_invocation_return_value (invocation, NULL);
|
||||
}
|
||||
} else if (g_strcmp0 (method_name, "AppendInfoItemRow") == 0) {
|
||||
@@ -521,11 +530,12 @@ handle_method_call (GDBusConnection *con
|
||||
|
||||
g_variant_get (parameters, "(t&s&s&s&s&s)", &page_id, &part_id, &table_id, &row_id, &icon_name, &message);
|
||||
|
||||
- document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
- if (document)
|
||||
- document = find_webkit_document_for_partid_or_return_dbus_error (invocation, document, part_id);
|
||||
+ top_document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
+ if (top_document)
|
||||
+ document = find_webkit_document_for_partid_or_return_dbus_error (invocation, top_document, part_id);
|
||||
if (document) {
|
||||
module_itip_formatter_dom_utils_append_info_item_row (document, table_id, row_id, icon_name, message);
|
||||
+ e_dom_update_iframe_height (top_document);
|
||||
g_dbus_method_invocation_return_value (invocation, NULL);
|
||||
}
|
||||
} else if (g_strcmp0 (method_name, "EnableTextArea") == 0) {
|
||||
@@ -546,11 +556,12 @@ handle_method_call (GDBusConnection *con
|
||||
|
||||
g_variant_get (parameters, "(t&s&s&s)", &page_id, &part_id, &area_id, &value);
|
||||
|
||||
- document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
- if (document)
|
||||
- document = find_webkit_document_for_partid_or_return_dbus_error (invocation, document, part_id);
|
||||
+ top_document = get_webkit_document_or_return_dbus_error (invocation, web_extension, page_id);
|
||||
+ if (top_document)
|
||||
+ document = find_webkit_document_for_partid_or_return_dbus_error (invocation, top_document, part_id);
|
||||
if (document) {
|
||||
module_itip_formatter_dom_utils_text_area_set_value (document, area_id, value);
|
||||
+ e_dom_update_iframe_height (top_document);
|
||||
g_dbus_method_invocation_return_value (invocation, NULL);
|
||||
}
|
||||
} else if (g_strcmp0 (method_name, "TextAreaGetValue") == 0) {
|
||||
diff -up evolution-3.28.5/src/modules/text-highlight/e-mail-formatter-text-highlight.c.frame-flattenning evolution-3.28.5/src/modules/text-highlight/e-mail-formatter-text-highlight.c
|
||||
--- evolution-3.28.5/src/modules/text-highlight/e-mail-formatter-text-highlight.c.frame-flattenning 2018-07-30 15:37:05.000000000 +0200
|
||||
+++ evolution-3.28.5/src/modules/text-highlight/e-mail-formatter-text-highlight.c 2023-01-04 09:25:06.252929132 +0100
|
||||
@@ -122,16 +122,26 @@ text_hightlight_read_data_thread (gpoint
|
||||
{
|
||||
TextHighlightClosure *closure = user_data;
|
||||
gint nbuffer = 10240;
|
||||
+ gssize read;
|
||||
+ gsize wrote = 0;
|
||||
gchar *buffer;
|
||||
|
||||
g_return_val_if_fail (closure != NULL, NULL);
|
||||
|
||||
buffer = g_new (gchar, nbuffer);
|
||||
|
||||
+ strcpy (buffer, "<style>body{margin:0; padding:8px;}</style>");
|
||||
+ read = strlen (buffer);
|
||||
+
|
||||
+ if (!g_output_stream_write_all (closure->output_stream, buffer, read, &wrote, closure->cancellable, &closure->error) ||
|
||||
+ (gssize) wrote != read || closure->error) {
|
||||
+ g_free (buffer);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
while (!camel_stream_eos (closure->read_stream) &&
|
||||
!g_cancellable_set_error_if_cancelled (closure->cancellable, &closure->error)) {
|
||||
- gssize read;
|
||||
- gsize wrote = 0;
|
||||
+ wrote = 0;
|
||||
|
||||
read = camel_stream_read (closure->read_stream, buffer, nbuffer, closure->cancellable, &closure->error);
|
||||
if (read < 0 || closure->error)
|
||||
diff -up evolution-3.28.5/src/web-extensions/e-dom-utils.c.frame-flattenning evolution-3.28.5/src/web-extensions/e-dom-utils.c
|
||||
--- evolution-3.28.5/src/web-extensions/e-dom-utils.c.frame-flattenning 2018-07-30 15:37:05.000000000 +0200
|
||||
+++ evolution-3.28.5/src/web-extensions/e-dom-utils.c 2023-01-04 09:25:06.253929132 +0100
|
||||
@@ -837,9 +837,8 @@ set_iframe_and_body_width (WebKitDOMDocu
|
||||
gchar *style;
|
||||
|
||||
/* Message main body */
|
||||
- local_width -= 8; /* 8 + 8 margins of body without iframes */
|
||||
- if (level > 1)
|
||||
- local_width -= 8;
|
||||
+ local_width -= level * 20; /* 10 + 10 margins of body without iframes */
|
||||
+ local_width -= 4;
|
||||
|
||||
style = g_strdup_printf ("width: %" G_GINT64_FORMAT "px;", local_width);
|
||||
e_dom_utils_add_css_rule_into_style_sheet_in_document (
|
||||
@@ -867,7 +866,7 @@ set_iframe_and_body_width (WebKitDOMDocu
|
||||
style);
|
||||
g_free (style);
|
||||
|
||||
- local_width -= 2; /* 1 + 1 frame borders */
|
||||
+ local_width -= 4; /* 2 + 2 frame borders */
|
||||
|
||||
style = g_strdup_printf ("width: %" G_GINT64_FORMAT "px;", local_width);
|
||||
e_dom_utils_add_css_rule_into_style_sheet_in_document (
|
||||
@@ -891,15 +890,11 @@ set_iframe_and_body_width (WebKitDOMDocu
|
||||
} else {
|
||||
gchar *style;
|
||||
|
||||
- local_width -= 20; /* 10 + 10 margins of body with iframes */
|
||||
- local_width -= 8; /* attachment margin */
|
||||
- local_width -= 2; /* 1 + 1 frame borders */
|
||||
+ local_width -= (level - 1) * 20; /* 10 + 10 margins of body with iframes */
|
||||
+ local_width -= 4; /* 2 + 2 frame borders */
|
||||
+ local_width -= 10; /* attachment margin */
|
||||
|
||||
- /* We need to subtract another 10 pixels from the iframe width to
|
||||
- * have the iframe's borders on the correct place. We can't subtract
|
||||
- * it from local_width as we don't want to propagate this change
|
||||
- * further. */
|
||||
- style = g_strdup_printf ("width: %" G_GINT64_FORMAT "px;", local_width - 10);
|
||||
+ style = g_strdup_printf ("width: %" G_GINT64_FORMAT "px;", local_width);
|
||||
e_dom_utils_add_css_rule_into_style_sheet_in_document (
|
||||
document,
|
||||
"-e-mail-formatter-style-sheet",
|
||||
@@ -933,7 +928,7 @@ set_iframe_and_body_width (WebKitDOMDocu
|
||||
if (level == 0) {
|
||||
gchar *style = NULL;
|
||||
|
||||
- tmp_local_width -= 8; /* attachment's margin */
|
||||
+ tmp_local_width -= 10; /* attachment's margin */
|
||||
|
||||
style = g_strdup_printf ("width: %" G_GINT64_FORMAT "px;", tmp_local_width);
|
||||
e_dom_utils_add_css_rule_into_style_sheet_in_document (
|
||||
@@ -947,9 +942,7 @@ set_iframe_and_body_width (WebKitDOMDocu
|
||||
"-e-mail-formatter-style-sheet",
|
||||
".attachment-wrapper iframe[src*=\"__formatas=txt\"]",
|
||||
style);
|
||||
- g_free (style);
|
||||
|
||||
- style = g_strdup_printf ("width: %" G_GINT64_FORMAT "px;", local_width);
|
||||
e_dom_utils_add_css_rule_into_style_sheet_in_document (
|
||||
document,
|
||||
"-e-mail-formatter-style-sheet",
|
||||
@@ -992,8 +985,10 @@ dom_window_resize_cb (WebKitDOMDOMWindow
|
||||
|
||||
document = webkit_dom_dom_window_get_document (dom_window);
|
||||
|
||||
- if (document)
|
||||
+ if (document) {
|
||||
e_dom_resize_document_content_to_preview_width (document);
|
||||
+ e_dom_update_iframe_height (document);
|
||||
+ }
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -1106,6 +1101,7 @@ e_dom_utils_e_mail_display_bind_dom (Web
|
||||
e_dom_wrap_long_anchors (document);
|
||||
|
||||
e_dom_resize_document_content_to_preview_width (document);
|
||||
+ e_dom_update_iframe_height (document);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -1160,6 +1156,99 @@ e_dom_utils_e_mail_display_unstyle_block
|
||||
g_clear_object (&collection);
|
||||
}
|
||||
|
||||
+static void
|
||||
+e_dom_update_iframe_height_recursive (WebKitDOMDocument *document)
|
||||
+{
|
||||
+ WebKitDOMHTMLCollection *frames = NULL;
|
||||
+ WebKitDOMElement *scrolling_elem;
|
||||
+ gulong ii, length;
|
||||
+
|
||||
+ frames = webkit_dom_document_get_elements_by_tag_name_as_html_collection (document, "iframe");
|
||||
+ length = webkit_dom_html_collection_get_length (frames);
|
||||
+ for (ii = 0; ii < length; ii++) {
|
||||
+ WebKitDOMHTMLIFrameElement *iframe;
|
||||
+ WebKitDOMDocument *content_document;
|
||||
+
|
||||
+ iframe = WEBKIT_DOM_HTML_IFRAME_ELEMENT (webkit_dom_html_collection_item (frames, ii));
|
||||
+
|
||||
+ content_document = webkit_dom_html_iframe_element_get_content_document (iframe);
|
||||
+ if (!content_document)
|
||||
+ continue;
|
||||
+
|
||||
+ e_dom_update_iframe_height_recursive (content_document);
|
||||
+ }
|
||||
+
|
||||
+ scrolling_elem = webkit_dom_document_get_scrolling_element (document);
|
||||
+ if (scrolling_elem) {
|
||||
+ WebKitDOMDOMWindow *default_view;
|
||||
+
|
||||
+ default_view = webkit_dom_document_get_default_view (document);
|
||||
+ if (default_view) {
|
||||
+ WebKitDOMElement *frame_elem;
|
||||
+
|
||||
+ frame_elem = webkit_dom_dom_window_get_frame_element (default_view);
|
||||
+ if (frame_elem) {
|
||||
+ WebKitDOMHTMLIFrameElement *iframe = WEBKIT_DOM_HTML_IFRAME_ELEMENT (frame_elem);
|
||||
+ glong scroll_height;
|
||||
+ gchar *height;
|
||||
+
|
||||
+ scroll_height = webkit_dom_element_get_scroll_height (scrolling_elem);
|
||||
+ height = webkit_dom_html_iframe_element_get_height (iframe);
|
||||
+ if (!height || scroll_height == (glong) g_ascii_strtoll (height, NULL, 10))
|
||||
+ webkit_dom_html_iframe_element_set_height (iframe, "10");
|
||||
+ g_free (height);
|
||||
+
|
||||
+ scroll_height = webkit_dom_element_get_scroll_height (scrolling_elem);
|
||||
+ height = g_strdup_printf ("%" G_GINT64_FORMAT, (gint64) (scroll_height + 2 +
|
||||
+ (webkit_dom_element_get_scroll_width (scrolling_elem) > webkit_dom_element_get_client_width (scrolling_elem) ? 20 : 0)));
|
||||
+ webkit_dom_html_iframe_element_set_height (iframe, height);
|
||||
+ g_free (height);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ g_clear_object (&default_view);
|
||||
+ }
|
||||
+
|
||||
+ g_clear_object (&frames);
|
||||
+}
|
||||
+
|
||||
+static gboolean
|
||||
+mail_display_can_use_frame_flattening (void)
|
||||
+{
|
||||
+ guint wk_major, wk_minor;
|
||||
+
|
||||
+ wk_major = webkit_get_major_version ();
|
||||
+ wk_minor = webkit_get_minor_version ();
|
||||
+
|
||||
+ /* The 2.38 is the last version, which supports frame-flattening;
|
||||
+ prefer it over the manual and expensive calculations. */
|
||||
+ return (wk_major < 2) || (wk_major == 2 && wk_minor <= 38);
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+e_dom_update_iframe_height (WebKitDOMDocument *document)
|
||||
+{
|
||||
+ WebKitDOMDOMWindow *default_view;
|
||||
+
|
||||
+ if (mail_display_can_use_frame_flattening ())
|
||||
+ return;
|
||||
+
|
||||
+ default_view = webkit_dom_document_get_default_view (document);
|
||||
+ if (default_view) {
|
||||
+ glong scroll_x, scroll_y;
|
||||
+
|
||||
+ scroll_x = webkit_dom_dom_window_get_scroll_x (default_view);
|
||||
+ scroll_y = webkit_dom_dom_window_get_scroll_y (default_view);
|
||||
+
|
||||
+ e_dom_update_iframe_height_recursive (document);
|
||||
+
|
||||
+ if (scroll_y != webkit_dom_dom_window_get_scroll_y (default_view))
|
||||
+ webkit_dom_dom_window_scroll_to (default_view, scroll_x, scroll_y);
|
||||
+ }
|
||||
+
|
||||
+ g_clear_object (&default_view);
|
||||
+}
|
||||
+
|
||||
void
|
||||
e_dom_utils_eab_contact_formatter_bind_dom (WebKitDOMDocument *document)
|
||||
{
|
||||
diff -up evolution-3.28.5/src/web-extensions/e-dom-utils.h.frame-flattenning evolution-3.28.5/src/web-extensions/e-dom-utils.h
|
||||
--- evolution-3.28.5/src/web-extensions/e-dom-utils.h.frame-flattenning 2018-07-30 15:37:05.000000000 +0200
|
||||
+++ evolution-3.28.5/src/web-extensions/e-dom-utils.h 2023-01-04 09:25:06.253929132 +0100
|
||||
@@ -69,6 +69,7 @@ void e_dom_utils_e_mail_display_bind_do
|
||||
GDBusConnection *connection);
|
||||
void e_dom_utils_e_mail_display_unstyle_blockquotes
|
||||
(WebKitDOMDocument *document);
|
||||
+void e_dom_update_iframe_height (WebKitDOMDocument *document);
|
||||
WebKitDOMElement *
|
||||
e_dom_utils_find_element_by_selector
|
||||
(WebKitDOMDocument *document,
|
||||
diff -up evolution-3.28.5/src/web-extensions/e-web-extension.c.frame-flattenning evolution-3.28.5/src/web-extensions/e-web-extension.c
|
||||
--- evolution-3.28.5/src/web-extensions/e-web-extension.c.frame-flattenning 2018-07-30 15:37:05.000000000 +0200
|
||||
+++ evolution-3.28.5/src/web-extensions/e-web-extension.c 2023-01-04 09:25:06.253929132 +0100
|
||||
@@ -613,8 +613,10 @@ handle_method_call (GDBusConnection *con
|
||||
|
||||
e_dom_utils_hide_element (document, element_id, hidden);
|
||||
|
||||
- if (expand_inner_data)
|
||||
+ if (expand_inner_data) {
|
||||
e_dom_resize_document_content_to_preview_width (document);
|
||||
+ e_dom_update_iframe_height (document);
|
||||
+ }
|
||||
}
|
||||
|
||||
g_dbus_method_invocation_return_value (invocation, NULL);
|
102
SOURCES/evolution-3.28.5-new-button.patch
Normal file
102
SOURCES/evolution-3.28.5-new-button.patch
Normal file
@ -0,0 +1,102 @@
|
||||
diff -up evolution-3.28.5/src/shell/e-shell-window.c.new-button evolution-3.28.5/src/shell/e-shell-window.c
|
||||
--- evolution-3.28.5/src/shell/e-shell-window.c.new-button 2018-07-30 15:37:05.000000000 +0200
|
||||
+++ evolution-3.28.5/src/shell/e-shell-window.c 2022-09-26 09:27:18.862555829 +0200
|
||||
@@ -47,6 +47,7 @@ enum {
|
||||
enum {
|
||||
CLOSE_ALERT,
|
||||
SHELL_VIEW_CREATED,
|
||||
+ UPDATE_NEW_MENU,
|
||||
LAST_SIGNAL
|
||||
};
|
||||
|
||||
@@ -120,6 +121,17 @@ shell_window_toolbar_update_new_menu (Gt
|
||||
gtk_menu_tool_button_set_menu (menu_tool_button, menu);
|
||||
}
|
||||
|
||||
+static void
|
||||
+shell_window_toolbar_update_new_menu_sig (EShellWindow *shell_window,
|
||||
+ GtkMenuToolButton *menu_tool_button)
|
||||
+{
|
||||
+ GtkWidget *menu;
|
||||
+
|
||||
+ /* Update the "New" menu tool button submenu. */
|
||||
+ menu = e_shell_window_create_new_menu (shell_window);
|
||||
+ gtk_menu_tool_button_set_menu (menu_tool_button, menu);
|
||||
+}
|
||||
+
|
||||
static gboolean
|
||||
shell_window_active_view_to_prefer_item (GBinding *binding,
|
||||
const GValue *source_value,
|
||||
@@ -160,6 +172,8 @@ shell_window_set_notebook_page (EShellWi
|
||||
g_return_if_fail (page_num >= 0);
|
||||
|
||||
gtk_notebook_set_current_page (notebook, page_num);
|
||||
+
|
||||
+ g_signal_emit (shell_window, signals[UPDATE_NEW_MENU], 0, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -512,8 +526,8 @@ shell_window_construct_menubar (EShellWi
|
||||
main_menu, "visible",
|
||||
G_BINDING_SYNC_CREATE);
|
||||
|
||||
- e_signal_connect_notify (
|
||||
- shell_window, "notify::active-view",
|
||||
+ g_signal_connect (
|
||||
+ shell_window, "update-new-menu",
|
||||
G_CALLBACK (shell_window_menubar_update_new_menu), NULL);
|
||||
|
||||
return main_menu;
|
||||
@@ -593,6 +607,11 @@ shell_window_construct_toolbar (EShellWi
|
||||
G_CALLBACK (shell_window_toolbar_update_new_menu),
|
||||
shell_window);
|
||||
|
||||
+ g_signal_connect_object (
|
||||
+ shell_window, "update-new-menu",
|
||||
+ G_CALLBACK (shell_window_toolbar_update_new_menu_sig),
|
||||
+ item, 0);
|
||||
+
|
||||
gtk_box_pack_start (GTK_BOX (box), toolbar, TRUE, TRUE, 0);
|
||||
|
||||
toolbar = e_shell_window_get_managed_widget (
|
||||
@@ -1176,6 +1195,24 @@ e_shell_window_class_init (EShellWindowC
|
||||
G_TYPE_NONE, 1,
|
||||
E_TYPE_SHELL_VIEW);
|
||||
|
||||
+ /*
|
||||
+ * EShellWindow::update-new-menu
|
||||
+ * @shell_window: the #EShellWindow
|
||||
+ *
|
||||
+ * Emitted when the 'New' menu should be updated.
|
||||
+ *
|
||||
+ * Since: 3.44.5
|
||||
+ */
|
||||
+ signals[UPDATE_NEW_MENU] = g_signal_new (
|
||||
+ "update-new-menu",
|
||||
+ G_OBJECT_CLASS_TYPE (object_class),
|
||||
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
|
||||
+ 0,
|
||||
+ NULL, NULL,
|
||||
+ g_cclosure_marshal_VOID__VOID,
|
||||
+ G_TYPE_NONE, 0,
|
||||
+ G_TYPE_NONE);
|
||||
+
|
||||
binding_set = gtk_binding_set_by_class (class);
|
||||
gtk_binding_entry_add_signal (
|
||||
binding_set, GDK_KEY_Escape, 0, "close-alert", 0);
|
||||
@@ -2029,6 +2066,8 @@ e_shell_window_register_new_item_actions
|
||||
G_OBJECT (action),
|
||||
"primary", GINT_TO_POINTER (TRUE));
|
||||
}
|
||||
+
|
||||
+ g_signal_emit (shell_window, signals[UPDATE_NEW_MENU], 0, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2106,4 +2145,6 @@ e_shell_window_register_new_source_actio
|
||||
G_OBJECT (action),
|
||||
"backend-name", (gpointer) backend_name);
|
||||
}
|
||||
+
|
||||
+ g_signal_emit (shell_window, signals[UPDATE_NEW_MENU], 0, NULL);
|
||||
}
|
@ -31,7 +31,7 @@
|
||||
|
||||
Name: evolution
|
||||
Version: 3.28.5
|
||||
Release: 18%{?dist}
|
||||
Release: 22%{?dist}
|
||||
Group: Applications/Productivity
|
||||
Summary: Mail and calendar client for GNOME
|
||||
License: GPLv2+ and GFDL
|
||||
@ -96,6 +96,15 @@ Patch13: evolution-3.28.5-webkitgtk-2.30.patch
|
||||
# RH bug #1972749
|
||||
Patch14: evolution-3.28.5-cmake-variable-name-comparison.patch
|
||||
|
||||
# RH bug #2126523
|
||||
Patch15: evolution-3.28.5-frame-flattenning.patch
|
||||
|
||||
# RH bug #2127019
|
||||
Patch16: evolution-3.28.5-contacts-prefer-orig-value.patch
|
||||
|
||||
# RH bug #2129702
|
||||
Patch17: evolution-3.28.5-new-button.patch
|
||||
|
||||
## Dependencies ###
|
||||
|
||||
Requires: %{_bindir}/killall
|
||||
@ -280,6 +289,9 @@ the functionality of the installed %{name} package.
|
||||
%patch12 -p1 -b .ecalendaritem-settings
|
||||
%patch13 -p1 -b .webkitgtk-2.30
|
||||
%patch14 -p1 -b .cmake-variable-name-comparison
|
||||
%patch15 -p1 -b .frame-flattenning
|
||||
%patch16 -p1 -b .contacts-prefer-orig-value
|
||||
%patch17 -p1 -b .new-button
|
||||
|
||||
# Remove the welcome email from Novell
|
||||
for inbox in src/mail/default/*/Inbox; do
|
||||
@ -578,6 +590,18 @@ grep -v "/usr/share/locale" evolution.lang > help.lang
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Wed Jan 04 2023 Milan Crha <mcrha@redhat.com> - 3.28.5-22
|
||||
- Resolves: #2126523 (Update patch to handle frame flattening change in WebKitGTK)
|
||||
|
||||
* Mon Sep 26 2022 Milan Crha <mcrha@redhat.com> - 3.28.5-21
|
||||
- Resolves: #2129702 (EShellWindow: The 'New' menu is not filled after start)
|
||||
|
||||
* Thu Sep 15 2022 Milan Crha <mcrha@redhat.com> - 3.28.5-20
|
||||
- Resolves: #2127019 (Contacts: Prefer original value only when filled on contact merge)
|
||||
|
||||
* Wed Sep 14 2022 Milan Crha <mcrha@redhat.com> - 3.28.5-19
|
||||
- Resolves: #2126523 (Add patch to handle frame flattening change in WebKitGTK)
|
||||
|
||||
* Wed Jun 16 2021 Milan Crha <mcrha@redhat.com> - 3.28.5-18
|
||||
- Resolves: #1972749 (PrintableOptions.cmake: Correct variable name comparison)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user