public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: mail-client/evolution/files/
@ 2019-07-20 19:39 Aaron Bauman
  0 siblings, 0 replies; 2+ messages in thread
From: Aaron Bauman @ 2019-07-20 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     bf5b2b5712fdbb3a48492d64f0181ba5d28b140b
Author:     Michael Mair-Keimberger <m.mairkeimberger <AT> gmail <DOT> com>
AuthorDate: Mon May 20 17:20:35 2019 +0000
Commit:     Aaron Bauman <bman <AT> gentoo <DOT> org>
CommitDate: Sat Jul 20 19:38:29 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bf5b2b57

mail-client/evolution: remove unused patch(es)

Signed-off-by: Michael Mair-Keimberger <m.mairkeimberger <AT> gmail.com>
Signed-off-by: Aaron Bauman <bman <AT> gentoo.org>

 .../evolution/files/3.24.6-DESTDIR-honoring.patch  |  53 -----
 .../evolution/files/3.24.6-libical3-compat.patch   | 265 ---------------------
 2 files changed, 318 deletions(-)

diff --git a/mail-client/evolution/files/3.24.6-DESTDIR-honoring.patch b/mail-client/evolution/files/3.24.6-DESTDIR-honoring.patch
deleted file mode 100644
index 7e024c937e7..00000000000
--- a/mail-client/evolution/files/3.24.6-DESTDIR-honoring.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From cb845f462072d1d1e4045eac5f16b4db1f552309 Mon Sep 17 00:00:00 2001
-From: Milan Crha <mcrha@redhat.com>
-Date: Mon, 2 Oct 2017 19:22:41 +0200
-Subject: [PATCH] Bug 781645 - Skip GSettings schema compile and icon cache
- update when DESTDIR is set
-
-(cherry picked from commit b40001cac702a74f818afb3f38acf9521e9d7b62)
----
- cmake/modules/GLibTools.cmake | 8 +++++---
- cmake/modules/IconCache.cmake | 8 +++++---
- 2 files changed, 10 insertions(+), 6 deletions(-)
-
-diff --git a/cmake/modules/GLibTools.cmake b/cmake/modules/GLibTools.cmake
-index fc8eb827c8..f0be5586db 100644
---- a/cmake/modules/GLibTools.cmake
-+++ b/cmake/modules/GLibTools.cmake
-@@ -238,9 +238,11 @@ macro(add_gsettings_schemas _target _schema0)
- 	if(_install_code)
- 		# Compile gsettings schemas and ensure that all of them are in the place.
- 		install(CODE
--			"execute_process(${_install_code}
--				COMMAND ${CMAKE_COMMAND} -E chdir . \"${GLIB_COMPILE_SCHEMAS}\" \"${GSETTINGS_SCHEMAS_DIR}\"
--			)")
-+			"if(\"\$ENV{DESTDIR}\" STREQUAL \"\")
-+				execute_process(${_install_code}
-+					COMMAND ${CMAKE_COMMAND} -E chdir . \"${GLIB_COMPILE_SCHEMAS}\" \"${GSETTINGS_SCHEMAS_DIR}\"
-+				)
-+			endif(\"\$ENV{DESTDIR}\" STREQUAL \"\")")
- 	endif(_install_code)
- endmacro(add_gsettings_schemas)
- 
-diff --git a/cmake/modules/IconCache.cmake b/cmake/modules/IconCache.cmake
-index 6f7f5f0f24..145b843f1d 100644
---- a/cmake/modules/IconCache.cmake
-+++ b/cmake/modules/IconCache.cmake
-@@ -60,9 +60,11 @@ macro(add_icon_cache_files _destdir _fileslistvar)
- 
- 	if(GTK_UPDATE_ICON_CACHE)
- 		install(CODE
--			"execute_process(${_install_code}
--				COMMAND ${CMAKE_COMMAND} -E chdir . ${_update_icon_cache_cmd}
--			)")
-+			"if(\"\$ENV{DESTDIR}\" STREQUAL \"\")
-+				execute_process(${_install_code}
-+					COMMAND ${CMAKE_COMMAND} -E chdir . ${_update_icon_cache_cmd}
-+				)
-+			endif(\"\$ENV{DESTDIR}\" STREQUAL \"\")")
- 	endif(GTK_UPDATE_ICON_CACHE)
- endmacro(add_icon_cache_files)
- 
--- 
-2.15.1
-

diff --git a/mail-client/evolution/files/3.24.6-libical3-compat.patch b/mail-client/evolution/files/3.24.6-libical3-compat.patch
deleted file mode 100644
index a7e5da268ee..00000000000
--- a/mail-client/evolution/files/3.24.6-libical3-compat.patch
+++ /dev/null
@@ -1,265 +0,0 @@
-From a1bfd863de7732d138a6cdd4c08c763f81560c34 Mon Sep 17 00:00:00 2001
-From: Milan Crha <mcrha@redhat.com>
-Date: Wed, 23 Aug 2017 14:11:12 +0200
-Subject: [PATCH 1/2] Bug 786163 - [ECalModel] Do not convert UTC times to
- local time zone
-
-(cherry picked from commit 7a3abddc2f0b12916a607da27cbd6817f28de737)
----
- src/calendar/gui/e-cal-model.c | 27 ---------------------------
- 1 file changed, 27 deletions(-)
-
-diff --git a/src/calendar/gui/e-cal-model.c b/src/calendar/gui/e-cal-model.c
-index 582fd7f3ea..75bf60fb2f 100644
---- a/src/calendar/gui/e-cal-model.c
-+++ b/src/calendar/gui/e-cal-model.c
-@@ -1943,32 +1943,6 @@ e_cal_model_get_component_index (ECalModel *model,
- 	return -1;
- }
- 
--/* We do this check since the calendar items are downloaded from the server
-- * in the open_method, since the default timezone might not be set there. */
--static void
--ensure_dates_are_in_default_zone (ECalModel *model,
--                                  icalcomponent *icalcomp)
--{
--	icaltimetype dt;
--	icaltimezone *zone;
--
--	zone = e_cal_model_get_timezone (model);
--	if (!zone)
--		return;
--
--	dt = icalcomponent_get_dtstart (icalcomp);
--	if (dt.is_utc) {
--		dt = icaltime_convert_to_zone (dt, zone);
--		icalcomponent_set_dtstart (icalcomp, dt);
--	}
--
--	dt = icalcomponent_get_dtend (icalcomp);
--	if (dt.is_utc) {
--		dt = icaltime_convert_to_zone (dt, zone);
--		icalcomponent_set_dtend (icalcomp, dt);
--	}
--}
--
- static void
- cal_model_data_subscriber_component_added_or_modified (ECalDataModelSubscriber *subscriber,
- 						       ECalClient *client,
-@@ -1995,7 +1969,6 @@ cal_model_data_subscriber_component_added_or_modified (ECalDataModelSubscriber *
- 
- 	table_model = E_TABLE_MODEL (model);
- 	icalcomp = icalcomponent_new_clone (e_cal_component_get_icalcomponent (comp));
--	ensure_dates_are_in_default_zone (model, icalcomp);
- 
- 	if (index < 0) {
- 		e_table_model_pre_change (table_model);
--- 
-2.15.1
-
-
-From f9d1eb89115b62bf6fd9d986856a4f4d26fc8e49 Mon Sep 17 00:00:00 2001
-From: Milan Crha <mcrha@redhat.com>
-Date: Wed, 4 Oct 2017 11:57:56 +0200
-Subject: [PATCH 2/2] Use icaltime_is_utc() instead of icaltimetype::is_utc
-
-The structure member is going to be removed from libical in the next release
-and the function is available for a long time, thus it's safe to replace
-the usage in the code.
-
-(cherry picked from commit ec8468efd71e8c81ebd6933646486237c32dd2b0)
----
- src/calendar/gui/comp-util.c                     | 6 +++---
- src/calendar/gui/e-cal-component-preview.c       | 2 +-
- src/calendar/gui/e-comp-editor-event.c           | 8 +++-----
- src/calendar/gui/e-comp-editor-page-recurrence.c | 1 -
- src/calendar/gui/e-comp-editor-property-part.c   | 2 --
- src/calendar/gui/e-comp-editor-task.c            | 2 +-
- src/calendar/gui/e-meeting-store.c               | 4 ++--
- src/calendar/gui/itip-utils.c                    | 2 +-
- src/modules/itip-formatter/itip-view.c           | 8 ++++----
- 9 files changed, 15 insertions(+), 20 deletions(-)
-
-diff --git a/src/calendar/gui/comp-util.c b/src/calendar/gui/comp-util.c
-index 6de47e8057..81d7b91b96 100644
---- a/src/calendar/gui/comp-util.c
-+++ b/src/calendar/gui/comp-util.c
-@@ -123,8 +123,8 @@ cal_comp_util_compare_event_timezones (ECalComponent *comp,
- 	/* If the event uses UTC for DTSTART & DTEND, return TRUE. Outlook
- 	 * will send single events as UTC, so we don't want to mark all of
- 	 * these. */
--	if ((!start_datetime.value || start_datetime.value->is_utc)
--	    && (!end_datetime.value || end_datetime.value->is_utc)) {
-+	if ((!start_datetime.value || icaltime_is_utc (*start_datetime.value))
-+	    && (!end_datetime.value || icaltime_is_utc (*end_datetime.value))) {
- 		retval = TRUE;
- 		goto out;
- 	}
-@@ -1328,7 +1328,7 @@ cal_comp_util_update_tzid_parameter (icalproperty *prop,
- 	if (tt.zone)
- 		tzid = icaltimezone_get_tzid ((icaltimezone *) tt.zone);
- 
--	if (tt.zone && tzid && *tzid && !tt.is_utc && !tt.is_date) {
-+	if (tt.zone && tzid && *tzid && !icaltime_is_utc (tt) && !tt.is_date) {
- 		if (param) {
- 			icalparameter_set_tzid (param, (gchar *) tzid);
- 		} else {
-diff --git a/src/calendar/gui/e-cal-component-preview.c b/src/calendar/gui/e-cal-component-preview.c
-index 67e56906e2..5801f71fc2 100644
---- a/src/calendar/gui/e-cal-component-preview.c
-+++ b/src/calendar/gui/e-cal-component-preview.c
-@@ -168,7 +168,7 @@ timet_to_str_with_zone (ECalComponentDateTime *dt,
- 	if (dt->tzid != NULL) {
- 		e_cal_client_get_timezone_sync (
- 			client, dt->tzid, &zone, NULL, NULL);
--	} else if (dt->value->is_utc) {
-+	} else if (icaltime_is_utc (*dt->value)) {
- 		zone = icaltimezone_get_utc_timezone ();
- 	}
- 
-diff --git a/src/calendar/gui/e-comp-editor-event.c b/src/calendar/gui/e-comp-editor-event.c
-index d56c1c9e90..40546a90aa 100644
---- a/src/calendar/gui/e-comp-editor-event.c
-+++ b/src/calendar/gui/e-comp-editor-event.c
-@@ -286,7 +286,7 @@ ece_event_update_timezone (ECompEditorEvent *event_editor,
- 	if (icalcomponent_get_first_property (component, ICAL_DTSTART_PROPERTY)) {
- 		dtstart = icalcomponent_get_dtstart (component);
- 		if (icaltime_is_valid_time (dtstart)) {
--			if (dtstart.is_utc)
-+			if (icaltime_is_utc (dtstart))
- 				zone = icaltimezone_get_utc_timezone ();
- 			else
- 				zone = ece_event_get_timezone_from_property (comp_editor,
-@@ -297,7 +297,7 @@ ece_event_update_timezone (ECompEditorEvent *event_editor,
- 	if (icalcomponent_get_first_property (component, ICAL_DTEND_PROPERTY)) {
- 		dtend = icalcomponent_get_dtend (component);
- 		if (!zone && icaltime_is_valid_time (dtend)) {
--			if (dtend.is_utc)
-+			if (icaltime_is_utc (dtend))
- 				zone = icaltimezone_get_utc_timezone ();
- 			else
- 				zone = ece_event_get_timezone_from_property (comp_editor,
-@@ -310,7 +310,7 @@ ece_event_update_timezone (ECompEditorEvent *event_editor,
- 
- 		itt = icalcomponent_get_due (component);
- 		if (icaltime_is_valid_time (itt)) {
--			if (itt.is_utc)
-+			if (icaltime_is_utc (itt))
- 				zone = icaltimezone_get_utc_timezone ();
- 			else
- 				zone = ece_event_get_timezone_from_property (comp_editor,
-@@ -497,10 +497,8 @@ ece_event_fill_component (ECompEditor *comp_editor,
- 				dtstart.zone = e_timezone_entry_get_timezone (E_TIMEZONE_ENTRY (timezone_entry));
- 				if (!dtstart.zone)
- 					dtstart.zone = icaltimezone_get_utc_timezone ();
--				dtstart.is_utc = dtstart.zone == icaltimezone_get_utc_timezone ();
- 
- 				dtend.zone = dtstart.zone;
--				dtend.is_utc = dtstart.is_utc;
- 
- 				set_dtstart = TRUE;
- 				set_dtend = TRUE;
-diff --git a/src/calendar/gui/e-comp-editor-page-recurrence.c b/src/calendar/gui/e-comp-editor-page-recurrence.c
-index 7f302dfc7f..139f07d1d3 100644
---- a/src/calendar/gui/e-comp-editor-page-recurrence.c
-+++ b/src/calendar/gui/e-comp-editor-page-recurrence.c
-@@ -1088,7 +1088,6 @@ ecep_recurrence_fill_ending_date (ECompEditorPageRecurrence *page_recurrence,
- 				rrule->until.minute = 0;
- 				rrule->until.second = 0;
- 				rrule->until.is_date = TRUE;
--				rrule->until.is_utc = FALSE;
- 			}
- 
- 			page_recurrence->priv->ending_date_tt = rrule->until;
-diff --git a/src/calendar/gui/e-comp-editor-property-part.c b/src/calendar/gui/e-comp-editor-property-part.c
-index bc42ef15c1..bb3582a6b8 100644
---- a/src/calendar/gui/e-comp-editor-property-part.c
-+++ b/src/calendar/gui/e-comp-editor-property-part.c
-@@ -872,8 +872,6 @@ e_comp_editor_property_part_datetime_get_value (ECompEditorPropertyPartDatetime
- 			value.zone = e_timezone_entry_get_timezone (timezone_entry);
- 		if (!value.zone)
- 			value.zone = icaltimezone_get_utc_timezone ();
--
--		value.is_utc = value.zone == icaltimezone_get_utc_timezone ();
- 	}
- 
- 	g_clear_object (&timezone_entry);
-diff --git a/src/calendar/gui/e-comp-editor-task.c b/src/calendar/gui/e-comp-editor-task.c
-index 16f31d8d32..86c1dca9ae 100644
---- a/src/calendar/gui/e-comp-editor-task.c
-+++ b/src/calendar/gui/e-comp-editor-task.c
-@@ -120,7 +120,7 @@ ece_task_update_timezone (ECompEditorTask *task_editor,
- 				if (force_allday && dt.is_date)
- 					*force_allday = TRUE;
- 
--				if (dt.is_utc)
-+				if (icaltime_is_utc (dt))
- 					zone = icaltimezone_get_utc_timezone ();
- 				else
- 					zone = ece_task_get_timezone_from_property (comp_editor,
-diff --git a/src/calendar/gui/e-meeting-store.c b/src/calendar/gui/e-meeting-store.c
-index 13c2e8643b..ae5b1f5c0f 100644
---- a/src/calendar/gui/e-meeting-store.c
-+++ b/src/calendar/gui/e-meeting-store.c
-@@ -1347,7 +1347,7 @@ process_free_busy_comp (EMeetingAttendee *attendee,
- 		icaltimezone *ds_zone;
- 
- 		dtstart = icalproperty_get_dtstart (ip);
--		if (!dtstart.is_utc)
-+		if (!icaltime_is_utc (dtstart))
- 			ds_zone = find_zone (ip, tz_top_level);
- 		else
- 			ds_zone = icaltimezone_get_utc_timezone ();
-@@ -1367,7 +1367,7 @@ process_free_busy_comp (EMeetingAttendee *attendee,
- 		icaltimezone *de_zone;
- 
- 		dtend = icalproperty_get_dtend (ip);
--		if (!dtend.is_utc)
-+		if (!icaltime_is_utc (dtend))
- 			de_zone = find_zone (ip, tz_top_level);
- 		else
- 			de_zone = icaltimezone_get_utc_timezone ();
-diff --git a/src/calendar/gui/itip-utils.c b/src/calendar/gui/itip-utils.c
-index d808a3c7fc..2b85786f37 100644
---- a/src/calendar/gui/itip-utils.c
-+++ b/src/calendar/gui/itip-utils.c
-@@ -1607,7 +1607,7 @@ comp_compliant (ESourceRegistry *registry,
- 			r->until.is_date = FALSE;
- 
- 			icaltimezone_convert_time (&r->until, from_zone, to_zone);
--			r->until.is_utc = TRUE;
-+			r->until.zone = to_zone;
- 
- 			e_cal_component_free_datetime (&dt);
- 			e_cal_component_set_rrule_list (clone, rrule_list);
-diff --git a/src/modules/itip-formatter/itip-view.c b/src/modules/itip-formatter/itip-view.c
-index 62303b9b35..5be43ad091 100644
---- a/src/modules/itip-formatter/itip-view.c
-+++ b/src/modules/itip-formatter/itip-view.c
-@@ -6167,9 +6167,9 @@ itip_view_init_view (ItipView *view)
- 
-                 /* If the timezone is not in the component, guess the local time */
-                 /* Should we guess if the timezone is an olsen name somehow? */
--		if (datetime.value->is_utc)
-+		if (icaltime_is_utc (*datetime.value))
- 			from_zone = icaltimezone_get_utc_timezone ();
--		else if (!datetime.value->is_utc && datetime.tzid) {
-+		else if (!icaltime_is_utc (*datetime.value) && datetime.tzid) {
- 			from_zone = icalcomponent_get_timezone (view->priv->top_level, datetime.tzid);
- 
- 			if (!from_zone)
-@@ -6206,9 +6206,9 @@ itip_view_init_view (ItipView *view)
- 
-                 /* If the timezone is not in the component, guess the local time */
-                 /* Should we guess if the timezone is an olsen name somehow? */
--		if (datetime.value->is_utc)
-+		if (icaltime_is_utc (*datetime.value))
- 			from_zone = icaltimezone_get_utc_timezone ();
--		else if (!datetime.value->is_utc && datetime.tzid) {
-+		else if (!icaltime_is_utc (*datetime.value) && datetime.tzid) {
- 			from_zone = icalcomponent_get_timezone (view->priv->top_level, datetime.tzid);
- 
- 			if (!from_zone)
--- 
-2.15.1
-


^ permalink raw reply related	[flat|nested] 2+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: mail-client/evolution/files/
@ 2022-12-02 20:37 Matt Turner
  0 siblings, 0 replies; 2+ messages in thread
From: Matt Turner @ 2022-12-02 20:37 UTC (permalink / raw
  To: gentoo-commits

commit:     c1ff0f9f4d13b7c98e4619812cbdedb79865c701
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Fri Dec  2 20:37:05 2022 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Fri Dec  2 20:37:36 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c1ff0f9f

mail-client/evolution: Add the patches

Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 ...llWindow-The-New-menu-is-not-filled-after.patch | 119 ++++++
 ...-Update-preview-s-iframe-height-to-match-.patch | 417 +++++++++++++++++++++
 2 files changed, 536 insertions(+)

diff --git a/mail-client/evolution/files/3.44.4-I-1969-EShellWindow-The-New-menu-is-not-filled-after.patch b/mail-client/evolution/files/3.44.4-I-1969-EShellWindow-The-New-menu-is-not-filled-after.patch
new file mode 100644
index 000000000000..882448e2f07c
--- /dev/null
+++ b/mail-client/evolution/files/3.44.4-I-1969-EShellWindow-The-New-menu-is-not-filled-after.patch
@@ -0,0 +1,119 @@
+From 080791256d78a6d97384b4eef0d411cdc73feeb0 Mon Sep 17 00:00:00 2001
+From: Milan Crha <mcrha@redhat.com>
+Date: Fri, 23 Sep 2022 11:34:51 +0200
+Subject: [PATCH 2/2] I#1969 - EShellWindow: The 'New' menu is not filled after
+ start
+
+Related to https://gitlab.gnome.org/GNOME/evolution/-/issues/1969
+---
+ src/shell/e-shell-window.c | 45 ++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 43 insertions(+), 2 deletions(-)
+
+diff --git a/src/shell/e-shell-window.c b/src/shell/e-shell-window.c
+index e7be30feee..86c83e5e1e 100644
+--- a/src/shell/e-shell-window.c
++++ b/src/shell/e-shell-window.c
+@@ -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 (GtkMenuToolButton *menu_tool_button,
+ 	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 (EShellWindow *shell_window,
+ 	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
+@@ -463,8 +477,8 @@ shell_window_construct_menubar (EShellWindow *shell_window)
+ 		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;
+@@ -544,6 +558,11 @@ shell_window_construct_toolbar (EShellWindow *shell_window)
+ 		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 (
+@@ -1133,6 +1152,24 @@ e_shell_window_class_init (EShellWindowClass *class)
+ 		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);
+@@ -2049,6 +2086,8 @@ e_shell_window_register_new_item_actions (EShellWindow *shell_window,
+ 				G_OBJECT (action),
+ 				"primary", GINT_TO_POINTER (TRUE));
+ 	}
++
++	g_signal_emit (shell_window, signals[UPDATE_NEW_MENU], 0, NULL);
+ }
+ 
+ /**
+@@ -2126,6 +2165,8 @@ e_shell_window_register_new_source_actions (EShellWindow *shell_window,
+ 			G_OBJECT (action),
+ 			"backend-name", (gpointer) backend_name);
+ 	}
++
++	g_signal_emit (shell_window, signals[UPDATE_NEW_MENU], 0, NULL);
+ }
+ 
+ /**
+-- 
+2.37.4
+

diff --git a/mail-client/evolution/files/3.44.4-I-2001-Mail-Update-preview-s-iframe-height-to-match-.patch b/mail-client/evolution/files/3.44.4-I-2001-Mail-Update-preview-s-iframe-height-to-match-.patch
new file mode 100644
index 000000000000..e7fe8acd07a6
--- /dev/null
+++ b/mail-client/evolution/files/3.44.4-I-2001-Mail-Update-preview-s-iframe-height-to-match-.patch
@@ -0,0 +1,417 @@
+From 44ac716d199b1c0a07a92014d2d64c28a077f876 Mon Sep 17 00:00:00 2001
+From: Milan Crha <mcrha@redhat.com>
+Date: Fri, 16 Sep 2022 08:47:07 +0200
+Subject: [PATCH 1/2] I#2001 - Mail: Update preview's iframe height to match
+ its content
+
+Closes https://gitlab.gnome.org/GNOME/evolution/-/issues/2001
+---
+ data/webkit/e-web-view.js                     | 60 ++++++++++++----
+ data/webkit/webview.css                       | 32 ++++-----
+ src/em-format/e-mail-formatter-text-plain.c   |  2 +-
+ src/mail/e-mail-display.c                     | 69 ++++++++++++++++++-
+ .../e-mail-formatter-text-highlight.c         | 14 +++-
+ 5 files changed, 140 insertions(+), 37 deletions(-)
+
+diff --git a/data/webkit/e-web-view.js b/data/webkit/e-web-view.js
+index a8f99c4668..058b4e578c 100644
+--- a/data/webkit/e-web-view.js
++++ b/data/webkit/e-web-view.js
+@@ -772,6 +772,38 @@ Evo.EnsureMainDocumentInitialized = function()
+ 	Evo.initializeAndPostContentLoaded(null);
+ }
+ 
++Evo.mailDisplayUpdateIFramesHeightRecursive = function(doc)
++{
++	if (!doc)
++		return;
++
++	var ii, iframes;
++
++	iframes = doc.getElementsByTagName("iframe");
++
++	/* Update from bottom to top */
++	for (ii = 0; ii < iframes.length; ii++) {
++		Evo.mailDisplayUpdateIFramesHeightRecursive(iframes[ii].contentDocument);
++	}
++
++	if (!doc.body || !doc.defaultView || !doc.defaultView.frameElement)
++		return;
++
++	if (doc.defaultView.frameElement.height == doc.body.scrollHeight)
++		doc.defaultView.frameElement.height = 10;
++	doc.defaultView.frameElement.height = doc.body.scrollHeight + 2 + (doc.body.scrollWidth > doc.body.clientWidth ? 20 : 0);
++}
++
++Evo.MailDisplayUpdateIFramesHeight = function()
++{
++	var scrolly = document.defaultView ? document.defaultView.scrollY : -1;
++
++	Evo.mailDisplayUpdateIFramesHeightRecursive(document);
++
++	if (scrolly != -1 && document.defaultView.scrollY != scrolly)
++		document.defaultView.scrollTo(0, scrolly);
++}
++
+ if (this instanceof Window && this.document) {
+ 	this.document.onload = function() { Evo.initializeAndPostContentLoaded(this); };
+ 
+@@ -857,9 +889,8 @@ Evo.mailDisplayResizeContentToPreviewWidth = function()
+ 				local_width -= 2; /* 1 + 1 frame borders */
+ 			} else if (!iframes.length) {
+ 				/* 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;
+ 
+ 				Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", "body", "width: " + local_width + "px;");
+ 				Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", ".part-container", "width: " + local_width + "px;");
+@@ -869,7 +900,7 @@ Evo.mailDisplayResizeContentToPreviewWidth = function()
+ 				Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", "body",
+ 					"width: " + local_width + "px;");
+ 
+-				local_width -= 2; /* 1 + 1 frame borders */
++				local_width -= 4; /* 2 + 2 frame borders */
+ 
+ 				Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", ".part-container-nostyle iframe",
+ 					"width: " + local_width + "px;");
+@@ -881,19 +912,15 @@ Evo.mailDisplayResizeContentToPreviewWidth = function()
+ 				Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", ".part-container iframe",
+ 					"width: " + (local_width - 10) + "px;");
+ 			} else {
+-				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. */
+ 				Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", ".part-container-nostyle iframe",
+-					"width: " + (local_width - 10) + "px;");
++					"width: " + local_width + "px;");
+ 
+ 				Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", "body > .part-container-nostyle iframe",
+-					"width: " + (local_width - 10) + "px;");
++					"width: " + local_width + "px;");
+ 			}
+ 
+ 			/* Add rules to every sub document */
+@@ -904,7 +931,7 @@ Evo.mailDisplayResizeContentToPreviewWidth = function()
+ 				var tmp_local_width = local_width;
+ 
+ 				if (level == 0) {
+-					tmp_local_width -= 8; /* attachment's margin */
++					tmp_local_width -= 10; /* attachment's margin */
+ 
+ 					Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", ".attachment-wrapper iframe:not([src*=\"__formatas=\"])",
+ 						"width: " + tmp_local_width + "px;");
+@@ -913,7 +940,7 @@ Evo.mailDisplayResizeContentToPreviewWidth = function()
+ 						"width: " + tmp_local_width + "px;");
+ 
+ 					Evo.addRuleIntoStyleSheetDocument(doc, "-e-mail-formatter-style-sheet", "body > .part-container-nostyle iframe",
+-						"width: " + local_width + "px;");
++						"width: " + tmp_local_width + "px;");
+ 				}
+ 
+ 				this.set_iframe_and_body_width (iframes[ii].contentDocument, tmp_local_width, original_width, level + 1);
+@@ -926,6 +953,7 @@ Evo.mailDisplayResizeContentToPreviewWidth = function()
+ 	width -= 20; /* 10 + 10 margins of body */
+ 
+ 	traversar.set_iframe_and_body_width(document, width, width, 0);
++	window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0);
+ }
+ 
+ Evo.mailDisplayUpdateMagicSpacebarState = function()
+@@ -1294,6 +1322,8 @@ Evo.MailDisplayShowAttachment = function(element_id, show)
+ 			window.webkit.messageHandlers.contentLoaded.postMessage(iframe_id);
+ 			Evo.mailDisplayUpdateMagicSpacebarState();
+ 		}
++	} else if (elem.ownerDocument.defaultView.frameElement) {
++		window.webkit.messageHandlers.scheduleIFramesHeightUpdate.postMessage(0);
+ 	}
+ }
+ 
+diff --git a/data/webkit/webview.css b/data/webkit/webview.css
+index 0d21253644..5b08388672 100644
+--- a/data/webkit/webview.css
++++ b/data/webkit/webview.css
+@@ -12,8 +12,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;
+ }
+ 
+ body, div, p, td {
+@@ -38,21 +38,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 {
+@@ -66,21 +66,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-right: 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 {
+@@ -175,7 +175,7 @@ th.rtl {
+ /***** PRINTING *******/
+ 
+ .printing-header {
+-  margin-bottom: 20px;
++  padding-bottom: 20px;
+ }
+ 
+ .printing-header h1,
+@@ -195,7 +195,7 @@ th.rtl {
+ /******* ITIP *********/
+ .itip.icon {
+   float: left;
+-  margin-right: 5px;
++  padding-right: 5px;
+ }
+ 
+ .itip.content {
+@@ -204,7 +204,7 @@ th.rtl {
+ }
+ 
+ .itip.description {
+-  margin: 5px;
++  padding: 5px;
+ }
+ 
+ .itip tr {
+@@ -228,7 +228,7 @@ th.rtl {
+ }
+ 
+ #table_row_buttons img {
+-  margin-right: 5px;
++  padding-right: 5px;
+   vertical-align: middle;
+ }
+ 
+diff --git a/src/em-format/e-mail-formatter-text-plain.c b/src/em-format/e-mail-formatter-text-plain.c
+index 7c6befda6b..3858bcdb3d 100644
+--- a/src/em-format/e-mail-formatter-text-plain.c
++++ b/src/em-format/e-mail-formatter-text-plain.c
+@@ -111,7 +111,7 @@ emfe_text_plain_format (EMailFormatterExtension *extension,
+ 		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: 0; margin: 0;\">";
+ 
+ 		g_output_stream_write_all (
+ 			stream, string, strlen (string),
+diff --git a/src/mail/e-mail-display.c b/src/mail/e-mail-display.c
+index cc38c65957..c60ab45cc5 100644
+--- a/src/mail/e-mail-display.c
++++ b/src/mail/e-mail-display.c
+@@ -83,6 +83,7 @@ struct _EMailDisplayPrivate {
+ 	GSettings *settings;
+ 
+ 	guint scheduled_reload;
++	guint iframes_height_update_id;
+ 
+ 	GHashTable *old_settings;
+ 
+@@ -537,6 +538,43 @@ initialize_web_view_colors (EMailDisplay *display,
+ 		e_web_view_get_cancellable (E_WEB_VIEW (display)));
+ }
+ 
++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 gboolean
++mail_display_iframes_height_update_cb (gpointer user_data)
++{
++	EMailDisplay *mail_display = user_data;
++
++	mail_display->priv->iframes_height_update_id = 0;
++
++	e_web_view_jsc_run_script (WEBKIT_WEB_VIEW (mail_display), e_web_view_get_cancellable (E_WEB_VIEW (mail_display)),
++		"Evo.MailDisplayUpdateIFramesHeight();");
++
++	return G_SOURCE_REMOVE;
++}
++
++static void
++mail_display_schedule_iframes_height_update (EMailDisplay *mail_display)
++{
++	if (mail_display_can_use_frame_flattening ())
++		return;
++
++	if (mail_display->priv->iframes_height_update_id)
++		g_source_remove (mail_display->priv->iframes_height_update_id);
++	mail_display->priv->iframes_height_update_id = g_timeout_add (100, mail_display_iframes_height_update_cb, mail_display);
++}
++
+ static void
+ mail_display_change_one_attachment_visibility (EMailDisplay *display,
+ 					       EAttachment *attachment,
+@@ -1353,6 +1391,8 @@ mail_display_content_loaded_cb (EWebView *web_view,
+ 			gtk_widget_grab_focus (widget);
+ 		}
+ 	}
++
++	mail_display_schedule_iframes_height_update (mail_display);
+ }
+ 
+ static void
+@@ -1475,6 +1515,11 @@ mail_display_dispose (GObject *object)
+ 		priv->scheduled_reload = 0;
+ 	}
+ 
++	if (priv->iframes_height_update_id > 0) {
++		g_source_remove (priv->iframes_height_update_id);
++		priv->iframes_height_update_id = 0;
++	}
++
+ 	if (priv->settings != NULL) {
+ 		g_signal_handlers_disconnect_matched (
+ 			priv->settings, G_SIGNAL_MATCH_DATA,
+@@ -1599,6 +1644,18 @@ mail_display_magic_spacebar_state_changed_cb (WebKitUserContentManager *manager,
+ 	mail_display->priv->magic_spacebar_state = jsc_value_to_int32 (jsc_value);
+ }
+ 
++static void
++mail_display_schedule_iframes_height_update_cb (WebKitUserContentManager *manager,
++						WebKitJavascriptResult *js_result,
++						gpointer user_data)
++{
++	EMailDisplay *mail_display = user_data;
++
++	g_return_if_fail (mail_display != NULL);
++
++	mail_display_schedule_iframes_height_update (mail_display);
++}
++
+ static void
+ mail_display_constructed (GObject *object)
+ {
+@@ -1611,9 +1668,11 @@ mail_display_constructed (GObject *object)
+ 	/* Chain up to parent's constructed() method. */
+ 	G_OBJECT_CLASS (e_mail_display_parent_class)->constructed (object);
+ 
+-	g_object_set (webkit_web_view_get_settings (WEBKIT_WEB_VIEW (object)),
+-		"enable-frame-flattening", TRUE,
+-		NULL);
++	if (mail_display_can_use_frame_flattening ()) {
++		g_object_set (webkit_web_view_get_settings (WEBKIT_WEB_VIEW (object)),
++			"enable-frame-flattening", TRUE,
++			NULL);
++	}
+ 
+ 	display = E_MAIL_DISPLAY (object);
+ 	web_view = E_WEB_VIEW (object);
+@@ -1661,8 +1720,12 @@ mail_display_constructed (GObject *object)
+ 	g_signal_connect_object (manager, "script-message-received::mailDisplayMagicSpacebarStateChanged",
+ 		G_CALLBACK (mail_display_magic_spacebar_state_changed_cb), display, 0);
+ 
++	g_signal_connect_object (manager, "script-message-received::scheduleIFramesHeightUpdate",
++		G_CALLBACK (mail_display_schedule_iframes_height_update_cb), display, 0);
++
+ 	webkit_user_content_manager_register_script_message_handler (manager, "mailDisplayHeadersCollapsed");
+ 	webkit_user_content_manager_register_script_message_handler (manager, "mailDisplayMagicSpacebarStateChanged");
++	webkit_user_content_manager_register_script_message_handler (manager, "scheduleIFramesHeightUpdate");
+ 
+ 	e_extensible_load_extensions (E_EXTENSIBLE (object));
+ }
+diff --git a/src/modules/text-highlight/e-mail-formatter-text-highlight.c b/src/modules/text-highlight/e-mail-formatter-text-highlight.c
+index d7c641c157..f1db9bf79c 100644
+--- a/src/modules/text-highlight/e-mail-formatter-text-highlight.c
++++ b/src/modules/text-highlight/e-mail-formatter-text-highlight.c
+@@ -135,16 +135,26 @@ text_hightlight_read_data_thread (gpointer user_data)
+ {
+ 	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)
+-- 
+2.37.4
+


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-12-02 20:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-20 19:39 [gentoo-commits] repo/gentoo:master commit in: mail-client/evolution/files/ Aaron Bauman
  -- strict thread matches above, loose matches on Subject: below --
2022-12-02 20:37 Matt Turner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox