4 Commits

Author SHA256 Message Date
b5b4ba7c68 Accepting request 1191745 from GNOME:Factory
OBS-URL: https://build.opensuse.org/request/show/1191745
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/evolution?expand=0&rev=280
2024-08-07 04:09:34 +00:00
16095d12af Accepting request 1191599 from GNOME:Next
- Update to version 3.52.4:
  + Bug Fixes:
    - Tooltips in Month view not always shown.
    - Mail: Print to File keeps previous file name.
    - Tooltips only sometimes displayed in Task and Memos Pane.
  + Miscellaneous: EWebView: Just loaded remote images may be left
    invisible.
  + Updated translations.

OBS-URL: https://build.opensuse.org/request/show/1191599
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/evolution?expand=0&rev=505
2024-08-05 17:15:12 +00:00
dc495c9408 Accepting request 1184253 from GNOME:Factory
- Update to version 3.52.3:
  + Bug Fixes:
    - Speed up startup - lots of local folders
    - Composer:
      . Wrap search by default
      . Text out of <div> can break Undo
      . Crash when opening spellcheck dialog
    - Forwarded e-mails don't have a filename extension
    - Composer: Crash when opening spellcheck dialog
    - Unable to drag'n'drop attachments between attachment bars
    - Crash under gtk_clutter_init_internal()
  + Miscellaneous:
    - Misc: Replace XPM images with SVG images
    - EAttachment: Check file_info contains display-name before
      accessing it
    - CI: Workaround broken git clone for libcanberra
  + Updated translations. (forwarded request 1183901 from iznogood)

OBS-URL: https://build.opensuse.org/request/show/1184253
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/evolution?expand=0&rev=279
2024-07-02 16:15:57 +00:00
5d5181a004 Accepting request 1183901 from GNOME:Next
- Update to version 3.52.3:
  + Bug Fixes:
    - Speed up startup - lots of local folders
    - Composer:
      . Wrap search by default
      . Text out of <div> can break Undo
      . Crash when opening spellcheck dialog
    - Forwarded e-mails don't have a filename extension
    - Composer: Crash when opening spellcheck dialog
    - Unable to drag'n'drop attachments between attachment bars
    - Crash under gtk_clutter_init_internal()
  + Miscellaneous:
    - Misc: Replace XPM images with SVG images
    - EAttachment: Check file_info contains display-name before
      accessing it
    - CI: Workaround broken git clone for libcanberra
  + Updated translations.

OBS-URL: https://build.opensuse.org/request/show/1183901
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/evolution?expand=0&rev=503
2024-07-01 08:59:08 +00:00
9 changed files with 34 additions and 1035 deletions

View File

@@ -3,7 +3,7 @@
<service name="obs_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://gitlab.gnome.org/GNOME/evolution.git</param>
<param name="revision">3.56.2</param>
<param name="revision">3.52.4</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="versionrewrite-pattern">(.*)\+0</param>
<param name="versionrewrite-replacement">\1</param>

3
evolution-3.52.4.obscpio Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:82a8974d2d24bad9c7ac28b07ec43823261e80e6f574aee39a9ecbd936314ac8
size 129916430

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:27ef21ba8a7c130de9a3706fac40e3476a9cdf7e0be50956b9c373aaf1e9d2cb
size 131405326

View File

@@ -1,610 +0,0 @@
From 4dd49ef283082b0289a2fa2b26e943e5067584f3 Mon Sep 17 00:00:00 2001
From: Milan Crha <mcrha@redhat.com>
Date: Wed, 18 Jun 2025 22:09:21 +0200
Subject: [PATCH] I#3075 - EAttachment: Notify about property changes only in
the main thread
The properties can change in the dedicated thread, but the property
change listeners call gtk+ functions, which can be done only in
the main thread, thus ensure that by notifying about the property
changes only there.
Closes https://gitlab.gnome.org/GNOME/evolution/-/issues/3075
---
src/e-util/e-attachment.c | 446 ++++++++++++++++++++++----------------
1 file changed, 261 insertions(+), 185 deletions(-)
diff --git a/src/e-util/e-attachment.c b/src/e-util/e-attachment.c
index d07404c379..7e4fa46d05 100644
--- a/src/e-util/e-attachment.c
+++ b/src/e-util/e-attachment.c
@@ -77,6 +77,9 @@ struct _EAttachmentPrivate {
guint save_self : 1;
guint save_extracted : 1;
+ guint is_constructed : 1;
+ GPtrArray *pending_prop_changes; /* GUINT_TO_POINTER (property_index) */
+
CamelCipherValidityEncrypt encrypted;
CamelCipherValiditySign signed_;
@@ -105,7 +108,8 @@ enum {
PROP_INITIALLY_SHOWN,
PROP_SIGNED,
PROP_MAY_RELOAD,
- PROP_IS_POSSIBLE
+ PROP_IS_POSSIBLE,
+ LAST_PROPERTY
};
enum {
@@ -117,9 +121,112 @@ enum {
};
static guint signals[LAST_SIGNAL];
+static GParamSpec *properties[LAST_PROPERTY] = { NULL, };
G_DEFINE_TYPE_WITH_PRIVATE (EAttachment, e_attachment, G_TYPE_OBJECT)
+static void
+e_attachment_flush_pending_prop_changes (EAttachment *self,
+ GPtrArray *pending_prop_changes,
+ guint with_prop_index)
+{
+ GObject *obj = G_OBJECT (self);
+
+ g_object_freeze_notify (obj);
+
+ if (pending_prop_changes) {
+ guint ii;
+
+ for (ii = 0; ii < pending_prop_changes->len; ii++) {
+ guint property_index = GPOINTER_TO_UINT (g_ptr_array_index (pending_prop_changes, ii));
+
+ g_object_notify_by_pspec (obj, properties[property_index]);
+
+ if (property_index == with_prop_index)
+ with_prop_index = 0;
+ }
+ }
+
+ if (with_prop_index)
+ g_object_notify_by_pspec (obj, properties[with_prop_index]);
+
+ g_object_thaw_notify (obj);
+}
+
+static gboolean
+e_attachment_notify_property_change_idle_cb (gpointer user_data)
+{
+ GWeakRef *self_weakref = user_data;
+ EAttachment *self;
+
+ self = g_weak_ref_get (self_weakref);
+ if (self) {
+ GPtrArray *pending_prop_changes;
+
+ g_mutex_lock (&self->priv->property_lock);
+ pending_prop_changes = g_steal_pointer (&self->priv->pending_prop_changes);
+ g_mutex_unlock (&self->priv->property_lock);
+
+ if (pending_prop_changes)
+ e_attachment_flush_pending_prop_changes (self, pending_prop_changes, 0);
+
+ g_clear_pointer (&pending_prop_changes, g_ptr_array_unref);
+ g_object_unref (self);
+ }
+
+ e_weak_ref_free (self_weakref);
+
+ return G_SOURCE_REMOVE;
+}
+
+static void
+e_attachment_notify_property_change (EAttachment *self,
+ guint property_index)
+{
+ /* ignore changes in "construct" properties; nobody is listening anyway */
+ if (!self->priv->is_constructed)
+ return;
+
+ if (e_util_is_main_thread (g_thread_self ())) {
+ GPtrArray *pending_prop_changes;
+
+ g_mutex_lock (&self->priv->property_lock);
+ pending_prop_changes = g_steal_pointer (&self->priv->pending_prop_changes);
+ g_mutex_unlock (&self->priv->property_lock);
+
+ e_attachment_flush_pending_prop_changes (self, pending_prop_changes, property_index);
+
+ g_clear_pointer (&pending_prop_changes, g_ptr_array_unref);
+ } else {
+ gboolean schedule;
+
+ g_mutex_lock (&self->priv->property_lock);
+
+ schedule = !self->priv->pending_prop_changes;
+
+ if (self->priv->pending_prop_changes) {
+ gpointer prop_ptr = GUINT_TO_POINTER (property_index);
+ guint ii;
+
+ for (ii = 0; ii < self->priv->pending_prop_changes->len; ii++) {
+ if (g_ptr_array_index (self->priv->pending_prop_changes, ii) == prop_ptr)
+ break;
+ }
+
+ if (ii >= self->priv->pending_prop_changes->len)
+ g_ptr_array_add (self->priv->pending_prop_changes, prop_ptr);
+ } else {
+ self->priv->pending_prop_changes = g_ptr_array_new ();
+ g_ptr_array_add (self->priv->pending_prop_changes, GUINT_TO_POINTER (property_index));
+ }
+
+ g_mutex_unlock (&self->priv->property_lock);
+
+ if (schedule)
+ g_idle_add (e_attachment_notify_property_change_idle_cb, e_weak_ref_new (self));
+ }
+}
+
static gboolean
create_system_thumbnail (EAttachment *attachment,
GIcon **icon)
@@ -457,7 +564,7 @@ attachment_update_icon_column_idle_cb (gpointer weak_ref)
if (attachment->priv->icon != NULL)
g_object_unref (attachment->priv->icon);
attachment->priv->icon = icon;
- g_object_notify (G_OBJECT (attachment), "icon");
+ e_attachment_notify_property_change (attachment, PROP_ICON);
g_clear_object (&file_info);
@@ -543,8 +650,8 @@ attachment_set_loading (EAttachment *attachment,
attachment->priv->last_percent_notify = 0;
g_object_freeze_notify (G_OBJECT (attachment));
- g_object_notify (G_OBJECT (attachment), "percent");
- g_object_notify (G_OBJECT (attachment), "loading");
+ e_attachment_notify_property_change (attachment, PROP_PERCENT);
+ e_attachment_notify_property_change (attachment, PROP_LOADING);
g_object_thaw_notify (G_OBJECT (attachment));
}
@@ -810,6 +917,17 @@ attachment_get_property (GObject *object,
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
+static void
+attachment_constructed (GObject *object)
+{
+ EAttachment *self = E_ATTACHMENT (object);
+
+ /* Chain up to parent's method. */
+ G_OBJECT_CLASS (e_attachment_parent_class)->constructed (object);
+
+ self->priv->is_constructed = TRUE;
+}
+
static void
attachment_dispose (GObject *object)
{
@@ -844,6 +962,8 @@ attachment_finalize (GObject *object)
if (self->priv->update_file_info_columns_idle_id > 0)
g_source_remove (self->priv->update_file_info_columns_idle_id);
+ g_clear_pointer (&self->priv->pending_prop_changes, g_ptr_array_unref);
+
g_mutex_clear (&self->priv->property_lock);
g_mutex_clear (&self->priv->idle_lock);
@@ -856,189 +976,145 @@ attachment_finalize (GObject *object)
static void
e_attachment_class_init (EAttachmentClass *class)
{
+ GParamFlags common_flags = G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_EXPLICIT_NOTIFY;
GObjectClass *object_class;
object_class = G_OBJECT_CLASS (class);
object_class->set_property = attachment_set_property;
object_class->get_property = attachment_get_property;
+ object_class->constructed = attachment_constructed;
object_class->dispose = attachment_dispose;
object_class->finalize = attachment_finalize;
- g_object_class_install_property (
- object_class,
- PROP_CAN_SHOW,
- g_param_spec_boolean (
- "can-show",
- "Can Show",
- NULL,
- FALSE,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
-
- g_object_class_install_property (
- object_class,
- PROP_DISPOSITION,
- g_param_spec_string (
- "disposition",
- "Disposition",
- NULL,
- "attachment",
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
+ properties[PROP_CAN_SHOW] = g_param_spec_boolean (
+ "can-show",
+ "Can Show",
+ NULL,
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT | common_flags);
+
+ properties[PROP_DISPOSITION] = g_param_spec_string (
+ "disposition",
+ "Disposition",
+ NULL,
+ "attachment",
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT | common_flags);
/* FIXME Define a GEnumClass for this. */
- g_object_class_install_property (
- object_class,
- PROP_ENCRYPTED,
- g_param_spec_int (
- "encrypted",
- "Encrypted",
- NULL,
- CAMEL_CIPHER_VALIDITY_ENCRYPT_NONE,
- CAMEL_CIPHER_VALIDITY_ENCRYPT_STRONG,
- CAMEL_CIPHER_VALIDITY_ENCRYPT_NONE,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
-
- g_object_class_install_property (
- object_class,
- PROP_FILE,
- g_param_spec_object (
- "file",
- "File",
- NULL,
- G_TYPE_FILE,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
-
- g_object_class_install_property (
- object_class,
- PROP_FILE_INFO,
- g_param_spec_object (
- "file-info",
- "File Info",
- NULL,
- G_TYPE_FILE_INFO,
- G_PARAM_READABLE));
-
- g_object_class_install_property (
- object_class,
- PROP_ICON,
- g_param_spec_object (
- "icon",
- "Icon",
- NULL,
- G_TYPE_ICON,
- G_PARAM_READABLE));
-
- g_object_class_install_property (
- object_class,
- PROP_LOADING,
- g_param_spec_boolean (
- "loading",
- "Loading",
- NULL,
- FALSE,
- G_PARAM_READABLE));
-
- g_object_class_install_property (
- object_class,
- PROP_MIME_PART,
- g_param_spec_object (
- "mime-part",
- "MIME Part",
- NULL,
- CAMEL_TYPE_MIME_PART,
- G_PARAM_READWRITE));
-
- g_object_class_install_property (
- object_class,
- PROP_PERCENT,
- g_param_spec_int (
- "percent",
- "Percent",
- NULL,
- 0,
- 100,
- 0,
- G_PARAM_READABLE));
-
- g_object_class_install_property (
- object_class,
- PROP_SAVE_SELF,
- g_param_spec_boolean (
- "save-self",
- "Save self",
- NULL,
- TRUE,
- G_PARAM_READWRITE));
-
- g_object_class_install_property (
- object_class,
- PROP_SAVE_EXTRACTED,
- g_param_spec_boolean (
- "save-extracted",
- "Save extracted",
- NULL,
- FALSE,
- G_PARAM_READWRITE));
-
- g_object_class_install_property (
- object_class,
- PROP_SAVING,
- g_param_spec_boolean (
- "saving",
- "Saving",
- NULL,
- FALSE,
- G_PARAM_READABLE));
-
- g_object_class_install_property (
- object_class,
- PROP_INITIALLY_SHOWN,
- g_param_spec_boolean (
- "initially-shown",
- "Initially Shown",
- NULL,
- FALSE,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
+ properties[PROP_ENCRYPTED] = g_param_spec_int (
+ "encrypted",
+ "Encrypted",
+ NULL,
+ CAMEL_CIPHER_VALIDITY_ENCRYPT_NONE,
+ CAMEL_CIPHER_VALIDITY_ENCRYPT_STRONG,
+ CAMEL_CIPHER_VALIDITY_ENCRYPT_NONE,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT | common_flags);
+
+ properties[PROP_FILE] = g_param_spec_object (
+ "file",
+ "File",
+ NULL,
+ G_TYPE_FILE,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT | common_flags);
+
+ properties[PROP_FILE_INFO] = g_param_spec_object (
+ "file-info",
+ "File Info",
+ NULL,
+ G_TYPE_FILE_INFO,
+ G_PARAM_READABLE | common_flags);
+
+ properties[PROP_ICON] = g_param_spec_object (
+ "icon",
+ "Icon",
+ NULL,
+ G_TYPE_ICON,
+ G_PARAM_READABLE | common_flags);
+
+ properties[PROP_LOADING] = g_param_spec_boolean (
+ "loading",
+ "Loading",
+ NULL,
+ FALSE,
+ G_PARAM_READABLE | common_flags);
+
+ properties[PROP_MIME_PART] = g_param_spec_object (
+ "mime-part",
+ "MIME Part",
+ NULL,
+ CAMEL_TYPE_MIME_PART,
+ G_PARAM_READWRITE | common_flags);
+
+ properties[PROP_PERCENT] = g_param_spec_int (
+ "percent",
+ "Percent",
+ NULL,
+ 0,
+ 100,
+ 0,
+ G_PARAM_READABLE | common_flags);
+
+ properties[PROP_SAVE_SELF] = g_param_spec_boolean (
+ "save-self",
+ "Save self",
+ NULL,
+ TRUE,
+ G_PARAM_READWRITE | common_flags);
+
+ properties[PROP_SAVE_EXTRACTED] = g_param_spec_boolean (
+ "save-extracted",
+ "Save extracted",
+ NULL,
+ FALSE,
+ G_PARAM_READWRITE | common_flags);
+
+ properties[PROP_SAVING] = g_param_spec_boolean (
+ "saving",
+ "Saving",
+ NULL,
+ FALSE,
+ G_PARAM_READABLE | common_flags);
+
+ properties[PROP_INITIALLY_SHOWN] = g_param_spec_boolean (
+ "initially-shown",
+ "Initially Shown",
+ NULL,
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT | common_flags);
/* FIXME Define a GEnumClass for this. */
- g_object_class_install_property (
- object_class,
- PROP_SIGNED,
- g_param_spec_int (
- "signed",
- "Signed",
- NULL,
- CAMEL_CIPHER_VALIDITY_SIGN_NONE,
- CAMEL_CIPHER_VALIDITY_SIGN_NEED_PUBLIC_KEY,
- CAMEL_CIPHER_VALIDITY_SIGN_NONE,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
-
- g_object_class_install_property (
- object_class,
- PROP_MAY_RELOAD,
- g_param_spec_boolean (
- "may-reload",
- "May Reload",
- NULL,
- FALSE,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
-
- g_object_class_install_property (
- object_class,
- PROP_IS_POSSIBLE,
- g_param_spec_boolean (
- "is-possible",
- "Is Possible",
- NULL,
- FALSE,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
+ properties[PROP_SIGNED] = g_param_spec_int (
+ "signed",
+ "Signed",
+ NULL,
+ CAMEL_CIPHER_VALIDITY_SIGN_NONE,
+ CAMEL_CIPHER_VALIDITY_SIGN_NEED_PUBLIC_KEY,
+ CAMEL_CIPHER_VALIDITY_SIGN_NONE,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT | common_flags);
+
+ properties[PROP_MAY_RELOAD] = g_param_spec_boolean (
+ "may-reload",
+ "May Reload",
+ NULL,
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT | common_flags);
+
+ properties[PROP_IS_POSSIBLE] = g_param_spec_boolean (
+ "is-possible",
+ "Is Possible",
+ NULL,
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT | common_flags);
+
+ g_object_class_install_properties (object_class, G_N_ELEMENTS (properties), properties);
signals[UPDATE_FILE_INFO] = g_signal_new (
"update-file-info",
@@ -1367,7 +1443,7 @@ e_attachment_set_can_show (EAttachment *attachment,
attachment->priv->can_show = can_show;
- g_object_notify (G_OBJECT (attachment), "can-show");
+ e_attachment_notify_property_change (attachment, PROP_CAN_SHOW);
}
const gchar *
@@ -1409,7 +1485,7 @@ e_attachment_set_disposition (EAttachment *attachment,
g_mutex_unlock (&attachment->priv->property_lock);
- g_object_notify (G_OBJECT (attachment), "disposition");
+ e_attachment_notify_property_change (attachment, PROP_DISPOSITION);
}
GFile *
@@ -1447,7 +1523,7 @@ e_attachment_set_file (EAttachment *attachment,
g_mutex_unlock (&attachment->priv->property_lock);
- g_object_notify (G_OBJECT (attachment), "file");
+ e_attachment_notify_property_change (attachment, PROP_FILE);
}
GFileInfo *
@@ -1495,7 +1571,7 @@ e_attachment_set_file_info (EAttachment *attachment,
g_mutex_unlock (&attachment->priv->property_lock);
- g_object_notify (G_OBJECT (attachment), "file-info");
+ e_attachment_notify_property_change (attachment, PROP_FILE_INFO);
}
/**
@@ -1592,7 +1668,7 @@ e_attachment_set_mime_part (EAttachment *attachment,
g_mutex_unlock (&attachment->priv->property_lock);
- g_object_notify (G_OBJECT (attachment), "mime-part");
+ e_attachment_notify_property_change (attachment, PROP_MIME_PART);
}
gint
@@ -1627,7 +1703,7 @@ e_attachment_set_initially_shown (EAttachment *attachment,
attachment->priv->initially_shown = initially_shown;
- g_object_notify (G_OBJECT (attachment), "initially-shown");
+ e_attachment_notify_property_change (attachment, PROP_INITIALLY_SHOWN);
}
gboolean
@@ -1682,7 +1758,7 @@ e_attachment_set_encrypted (EAttachment *attachment,
attachment->priv->encrypted = encrypted;
- g_object_notify (G_OBJECT (attachment), "encrypted");
+ e_attachment_notify_property_change (attachment, PROP_ENCRYPTED);
}
CamelCipherValiditySign
@@ -1703,7 +1779,7 @@ e_attachment_set_signed (EAttachment *attachment,
attachment->priv->signed_ = signed_;
- g_object_notify (G_OBJECT (attachment), "signed");
+ e_attachment_notify_property_change (attachment, PROP_SIGNED);
}
gchar *
@@ -1985,7 +2061,7 @@ e_attachment_set_may_reload (EAttachment *attachment,
attachment->priv->may_reload = may_reload;
- g_object_notify (G_OBJECT (attachment), "may-reload");
+ e_attachment_notify_property_change (attachment, PROP_MAY_RELOAD);
attachment_update_icon_column (attachment);
}
@@ -2011,7 +2087,7 @@ e_attachment_set_is_possible (EAttachment *attachment,
attachment->priv->is_possible = is_possible;
- g_object_notify (G_OBJECT (attachment), "is-possible");
+ e_attachment_notify_property_change (attachment, PROP_IS_POSSIBLE);
}
gboolean
--
GitLab

View File

@@ -1,90 +0,0 @@
From 811a6df1f990855e49ecc0ba7b1a7f7a5ec251e6 Mon Sep 17 00:00:00 2001
From: Milan Crha <mcrha@redhat.com>
Date: Fri, 29 Aug 2025 07:42:10 +0200
Subject: [PATCH] I#3124 - JavaScript: Correct dictionary objects creation
(WebKitGTK 2.49.4)
The arrays do not have named indexes, though it worked only by a chance
with the previous WebKitGTK versions. Correct how the objects are created
to follow the standard.
Closes https://gitlab.gnome.org/GNOME/evolution/-/issues/3124
---
data/webkit/e-editor.js | 10 +++++-----
data/webkit/e-web-view.js | 4 ++--
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/data/webkit/e-editor.js b/data/webkit/e-editor.js
index c4e643d9ea..340ff54643 100644
--- a/data/webkit/e-editor.js
+++ b/data/webkit/e-editor.js
@@ -4409,7 +4409,7 @@ EvoEditor.LinkGetProperties = function()
var res = null, anchor = EvoEditor.getParentElement("A", null, false);
if (anchor) {
- res = [];
+ res = {};
res["href"] = anchor.hasAttribute("href") ? anchor.getAttribute("href") : "";
res["text"] = anchor.innerText;
res["name"] = anchor.name;
@@ -4419,7 +4419,7 @@ EvoEditor.LinkGetProperties = function()
range = document.getSelection().getRangeAt(0);
if (range) {
- res = [];
+ res = {};
res["text"] = range.toString();
}
}
@@ -5513,7 +5513,7 @@ EvoEditor.InsertSignature = function(content, isHTML, canRepositionCaret, uid, f
EvoUndoRedo.StopRecord(EvoUndoRedo.RECORD_KIND_GROUP, "InsertSignature");
}
- var res = [];
+ var res = {};
res["fromMessage"] = fromMessage;
res["checkChanged"] = checkChanged;
@@ -6722,7 +6722,7 @@ EvoEditor.onContextMenu = function(event)
if (document.getSelection().isCollapsed)
nodeFlags |= EvoEditor.E_CONTENT_EDITOR_NODE_IS_TEXT_COLLAPSED;
- res = [];
+ res = {};
res["nodeFlags"] = nodeFlags;
res["caretWord"] = EvoEditor.GetCaretWord();
@@ -6743,7 +6743,7 @@ document.onselectionchange = function() {
EvoEditor.maybeUpdateFormattingState(EvoEditor.forceFormatStateUpdate ? EvoEditor.FORCE_YES : EvoEditor.FORCE_MAYBE);
EvoEditor.forceFormatStateUpdate = false;
- var sel = document.getSelection(), args = [];
+ var sel = document.getSelection(), args = {};
args["isCollapsed"] = sel.isCollapsed;
diff --git a/data/webkit/e-web-view.js b/data/webkit/e-web-view.js
index 591ee4f20e..b83899ba32 100644
--- a/data/webkit/e-web-view.js
+++ b/data/webkit/e-web-view.js
@@ -399,7 +399,7 @@ Evo.elementClicked = function(elem)
dom_window = parent_dom_window;
}
- var res = [];
+ var res = {};
res["iframe-id"] = parent_iframe_id;
res["elem-id"] = elem.id;
@@ -617,7 +617,7 @@ Evo.GetElementFromPoint = function(xx, yy)
if (!elem)
return null;
- var res = [], iframe;
+ var res = {}, iframe;
iframe = elem.ownerDocument.defaultView.frameElement;
--
2.51.0

View File

@@ -1,53 +0,0 @@
From 4af3f6833b252f713fe19a531008d6451064701b Mon Sep 17 00:00:00 2001
From: Milan Crha <mcrha@redhat.com>
Date: Wed, 4 Feb 2026 08:35:22 +0100
Subject: [PATCH] I#3238 - Calendar: Year view shows incorrect week number
Closes https://gitlab.gnome.org/GNOME/evolution/-/issues/3238
---
src/e-util/e-month-widget.c | 16 +++-------------
1 file changed, 3 insertions(+), 13 deletions(-)
diff --git a/src/e-util/e-month-widget.c b/src/e-util/e-month-widget.c
index ed8ecf6b8f..12d765c2e1 100644
--- a/src/e-util/e-month-widget.c
+++ b/src/e-util/e-month-widget.c
@@ -161,32 +161,22 @@ e_month_widget_update (EMonthWidget *self)
GDate *date, tmp_date;
GtkWidget *widget;
gchar buffer[128];
- guint week_of_year, week_of_last_year = 0;
guint ii, jj, month_day, max_month_days;
if (!digit_format)
digit_format = get_digit_format ();
date = g_date_new_dmy (1, self->priv->month, self->priv->year);
-
- if (self->priv->week_start_day == G_DATE_SUNDAY) {
- week_of_year = g_date_get_sunday_week_of_year (date);
- if (!week_of_year)
- week_of_last_year = g_date_get_sunday_weeks_in_year (self->priv->year - 1);
- } else {
- week_of_year = g_date_get_monday_week_of_year (date);
- if (!week_of_year)
- week_of_last_year = g_date_get_monday_weeks_in_year (self->priv->year - 1);
- }
+ tmp_date = *date;
/* Update week numbers */
for (ii = 0; ii < MAX_WEEKS; ii++) {
- g_snprintf (buffer, sizeof (buffer), digit_format, !week_of_year ? week_of_last_year : week_of_year);
+ g_snprintf (buffer, sizeof (buffer), digit_format, g_date_get_iso8601_week_of_year (&tmp_date));
widget = gtk_grid_get_child_at (self->priv->grid, 0, ii + 1);
gtk_label_set_text (GTK_LABEL (widget), buffer);
- week_of_year++;
+ g_date_add_days (&tmp_date, 7);
}
/* Update day names */
--
2.52.0

View File

@@ -1,269 +1,3 @@
-------------------------------------------------------------------
Wed Feb 4 14:46:58 UTC 2026 - Michael Gorse <mgorse@suse.com>
- Add evolution-year-view-week-number.patch: fix incorrect week
numbers in calendar year view (bsc#1256465
glgo#GNOME/evolution#3238).
-------------------------------------------------------------------
Tue Oct 28 19:40:36 UTC 2025 - Michael Gorse <mgorse@suse.com>
- Add evolution-fix-javascript-code.patch: Fix JavaScript
dictionary objects creation. Needed for WebKitGTK >= 2.50
(bsc#1252722 glgo#GNOME/evolution#3124).
-------------------------------------------------------------------
Tue Jun 24 03:39:39 UTC 2025 - Alynx Zhou <alynx.zhou@suse.com>
- Add evolution-fix-gtk-call-from-other-thread.patch: Fix crash
because of GTK call from other thread (bsc#1243898).
-------------------------------------------------------------------
Fri May 23 19:24:14 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 3.56.2:
+ Bug Fixes:
- Check return value of CamelDataWrapper calculate size
functions
- Cannot add actions in 'Customize User Interface' dialog
- Ensure "New" button action in Calendar view
- Mail: Do not strip signature for Edit as New in Sent folder
+ Miscellaneous: Calendar: Cannot show/hide Tasks and Memos pane
-------------------------------------------------------------------
Fri May 23 12:41:39 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Drop obsolete update-desktop-files BuildRequires and macro.
-------------------------------------------------------------------
Fri Apr 11 06:58:06 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 3.56.1:
+ Bug Fixes:
- Mail: Magic Spacebar sometimes doesn't switch mail
- Remove Attachments fails with signed messages
- ECompEditor: Buttons to add attachments do nothing
- "New->..." actions missing in UI customization dialog
- Composer: Prompt for "send with shortcut" doesn't work
- e-convert.js: Exception on convert to plain text
-------------------------------------------------------------------
Tue Mar 25 09:42:52 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Drop pkgconfig(gladeui-2.0) BuildRequires and stop passing
WITH_GLADE_CATALOG=ON to cmake, no longer build the optional
glade support. Following this, drop the glade-catalog-evolution
sub-package.
-------------------------------------------------------------------
Fri Mar 14 12:51:27 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 3.56.0:
+ Bug Fixes:
- Workaround shown menu icons when should not be
- Crash on quit of the app
- mail: Add .mbox extension to dragged email files
- Tasks: Compare DUE date in local time zone, not the
property's zone
- ECalShellView: Add a translator comment for an ambiguous
string
- Forwarding from Unified Inbox picks wrong From account
- Task bar in Calendar view is not sufficiently updated
- Month View: Sometimes not fully populated
- Mark Folder as read works not longer on subfolders
+ Miscellaneous:
- EWeekView: Scroll by shown weeks when scrolling by month
- templates: Fix a circular dependency between structures
- e-mail-shell-view-actions: Fix a memory leak
- prefer-plain: Fix a ref/unref imbalance on an EUIActionGroup
object
+ Updated translations.
-------------------------------------------------------------------
Fri Feb 28 12:38:11 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 3.55.3:
+ Bug Fixes:
- EImportAssistant: Keep the preview widget expanded
- Add option to use bigger text for time in the "To Do" pane
- itip-formatter: State status of found appointment in email
- MessageList: Use GTask instead of RegenData to keep track of
current task
- EMailLabelTreeView: Label colors not shown with symbolic
icons
- Switcher appearance resets to "Icons and Text" after restart
- Entering number in search bar colours selected message
- Composer: Middle-click paste misplaced with changed font
scaling
- ETree: Expander triangle is reversed
- Use GdkDisplay instead of GdkScreen when possible
- EUIManager: Do not do direct comparison with GVariantType
- e-util: Remove GalA11yETableFactory and GalA11yETreeFactory
+ Miscellaneous:
- EWebKitEditor: Correct GObject property type on read
- text-highlight: Update 'highlight' arguments
- Composer: Do not add extra empty lines at the end of the plain text
- help: Add missing help files into the build script
+ Updated translations:
-------------------------------------------------------------------
Fri Jan 31 18:53:12 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 3.55.2 (Unstable):
+ Bug Fixes:
- Mail: Show inline images with 'name' as attachments
- Apply changes in attachment properties popover with Enter
- Change default button in delete confirmation dialog
- S/MIME: Backup certificate with stronger/better algorithm
- Expose the "Bulk Edit..." in the contextual menu
- mail-autoconfig: Use real user e-mail in the request
- ETableSortInfo: Have a strong reference on the
ETableSpecification
- Mail: "To Do" bar is always shown after restart
- Mail: Allow save of a message attachment to a mail folder
- mail-dialogs: Use GtkGrid instead of GtkTable
- canvas: Actually subclass GInitiallyUnowned
- libgnomecanvas: Remove gnome-canvas-i18n.h
- Replace all occurences of gtk_icon_info_free
- EMeetingTimeSelector: Subclass GtkGrid
- EMeetingTimeSelector: Use a GtkGrid for the time selector
- EComposerHeaderTable: Make it a GtkGrid subclass
- EContactEditor: Use GtkGrid instead of GtkTable
- EContactQuickAdd: Use GtkGrid instead of GtkTable
- Remove ESendOptionsDialog
- ETableConfig: Use GtkComboboxText directly
- Use GtkGrid instead of GtkTable
- Require GLib 2.70
- Get rid of GtkAlignment in the code
- EAlphabetBox: Base the widget on GtkListBox
- Replace GtkArrow with images
- Remove e_util_check_gtk_bindings_in_key_press_event_cb
- Remove the use of gtk_scrolled_window_add_with_viewport
- EWeekdayChooser: Switch to native GTK widgets
- Replace g_memdup with g_memdup2
- Do not use GTimeVal
- Avoid the use of g_binding_get_source/target
- Replace gtk_combo_box_set_focus_on_click with
gtk_widget_set_focus_on_click
- Use webkit_settings_font_size_to_pixels to set font size
- Remove calendar/gui/misc.c|.h
- itip-formatter: Import of forwarded meeting as bare event
+ Miscellaneous:
- ETaskTable: Use "stock_check-filled-symbolic" icon name
- EAddressbookView: Context menu could be shown twice in the
Minicard view
- Switcher button icon does not change when action's icon name
changes
- EShellView: Do not process accels when search entry is
focused
- Preview layout setting does not stick after app restart
- Remove e-reflow and e-reflow-model
- EAttachmentBar: Verify 'possible_attachments" is non-NULL
before using it
- Replace margin-left/right with margin-start/end
- e-misc-utils: Remove unused e_util_stop_signal_emission_cb()
- Use gtk_show_uri_on_window instead of gtk_show_uri
- EShellSwitcher: Cannot create a new window by a switcher
button press
- docs: Remove index references for versions not in the code
any more
+ Updated translations.
-------------------------------------------------------------------
Sat Jan 4 09:22:52 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 3.54.3:
+ Miscellaneous: ESourceSelector: Source child drawn in too thin
font.
-------------------------------------------------------------------
Fri Nov 22 12:26:56 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 3.54.2:
+ Bug Fixes:
- Composer: Possible crash on paste
- Correct certificate key usage constants
- ToDo bar sometimes does not display due tasks
+ Miscellaneous: Default inbox email: Update URIs, remove link to
defunct mailing list.
+ Updated translations.
-------------------------------------------------------------------
Fri Oct 18 07:15:01 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 3.54.1:
+ Bug Fixes: Missing sender's S/MIME certificate import button
+ Miscellaneous:
- libgnomecanvas: Add few checks for argument validity
- WebKitGTK 2.46.1: Middle mouse button inserts primary
clipboard twice
+ Updated translations.
-------------------------------------------------------------------
Fri Sep 13 07:36:18 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 3.54.0:
+ Bug Fixes:
- Calendar: Correct typos "Sent Notice" -> "Send Notice".
- Typo in code eab-contact.
- Calendar: Correct typo in error message id.
- Set prgname to application ID.
+ Miscellaneous:
- docs: Correct developer documentation to install API indexes.
- CI: Export also developer documentation into the web pages.
+ Updated translations.
-------------------------------------------------------------------
Fri Aug 30 08:23:57 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 3.52.3:
+ Bug Fixes:
- Permit only one instance of “Evolution Accounts” window
- Translations of the concepts "email" and "raw email" are difficult for users
- Mail: junk-test not called since I#2780
- Translations in WebExtension do not work
- Calendar: Fix gettext format problems
+ Miscellaneous: help: Open the latest help web pages when help
not available locally
+ Updated translations.
-------------------------------------------------------------------
Sun Aug 25 13:09:07 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 3.52.2:
+ CI: Update OpenLDAP version
+ CI: Update dependencies in the Flatpak manifest
+ CI: Add language switcher into the generated help/ pages
+ flaptak: Update dependencies in the build strict for the
development version
+ EWebView: Just loaded remote images may be left invisible
+ EToDoPane: Robust open of a calendar client
+ Calendar: Correct indent of some options in the Preferences
+ help: Mention the Switcher buttons appearance can be changed in
the menu
+ Bug Fixes:
- Ability to identify which domain a blocked remote image is related to
- Support custom icon and text color also for Search Folders
- Remove multiple CC warning if they are sharing common domain
- Allow internal anchor links in HTML mail composer
- Tooltips in Month view not always shown
- Enhance "junk-test" to return also "inconclusive" value
- "Thread by Subject" option not propagated to Search Folders
- Mail: Print to File keeps previous file name
- Tooltips only sometimes displayed in Task and Memos Pane
- Outgoing filter: Source account condition never succeeds
- MessageList: Parents of collapsed threads do not show labels properly
- itip-formatter: Use open-map: link for the Location field
- Mark for Follow Up dialog ignores date format setting
- publish-calendar: Fails to mount destination directory
+ Updated translations.
-------------------------------------------------------------------
Mon Aug 19 11:28:19 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- BuildRequire gettext-devel instead of gettext: allow OBS to
shortcut through gettext-runtime-mini.
-------------------------------------------------------------------
Mon Aug 5 06:52:20 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>

View File

@@ -1,4 +1,4 @@
name: evolution
version: 3.56.2
mtime: 1748024946
commit: be48e0ae8f7a2cc52bcdf7b2ce360075274992ee
version: 3.52.4
mtime: 1722580094
commit: 511ff56a311f93455b057ae22b68d581f900adf4

View File

@@ -1,7 +1,7 @@
#
# spec file for package evolution
#
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
%define _version %(echo %{version} | grep -E -o '[0-9]+\.[0-9]+\.[0-9]+')
Name: evolution
Version: 3.56.2
Version: 3.52.4
Release: 0
# FIXME: check if note on license is still valid (comment before license)
Summary: The Integrated GNOME Mail, Calendar, and Address Book Suite
@@ -29,19 +29,13 @@ License: CC-BY-SA-3.0 AND LGPL-2.0-only AND LGPL-3.0-only AND OLDAP-2.8 A
Group: Productivity/Networking/Email/Clients
URL: https://wiki.gnome.org/Apps/Evolution/
Source0: %{name}-%{version}.tar.zst
# PATCH-FIX-UPSTREAM evolution-fix-gtk-call-from-other-thread.patch bsc#1243898 alynx.zhou@suse.com -- Fix crash because of GTK call from other thread
Patch0: evolution-fix-gtk-call-from-other-thread.patch
# PATCH-FIX-UPSTREAM evolution-fix-javascript-code.patch bsc#1252722 mgorse@suse.com -- fix JavaScript dictionary objects creation.
Patch1: evolution-fix-javascript-code.patch
# PATCH-FIX-UPSTREAM evolution-year-view-week-number.patch bsc#1256465 mgorse@suse.com -- fix incorrect week numbers in calendar year view.
Patch2: evolution-year-view-week-number.patch
BuildRequires: bison
BuildRequires: bogofilter
BuildRequires: cmake >= 3.15
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: gettext-devel
BuildRequires: gettext
BuildRequires: gtk-doc
BuildRequires: intltool
BuildRequires: openldap2-devel
@@ -51,6 +45,7 @@ BuildRequires: pkgconfig
BuildRequires: psmisc
BuildRequires: spamassassin
BuildRequires: sqlite3-devel
BuildRequires: update-desktop-files
BuildRequires: yelp-tools
BuildRequires: pkgconfig(atk)
BuildRequires: pkgconfig(cairo-gobject)
@@ -60,6 +55,7 @@ BuildRequires: pkgconfig(gail-3.0) >= 3.2.0
BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= 2.24.0
BuildRequires: pkgconfig(geocode-glib-2.0)
BuildRequires: pkgconfig(gio-2.0) >= 2.56.0
BuildRequires: pkgconfig(gladeui-2.0) >= 3.10.0
BuildRequires: pkgconfig(gmodule-2.0) >= 2.40.0
BuildRequires: pkgconfig(gnome-autoar-0) >= 0.1.1
BuildRequires: pkgconfig(gnome-autoar-gtk-0) >= 0.1.1
@@ -105,6 +101,22 @@ calendar, and address book) that should make daily life easier. Because
of the modular design, it is possible to plug new components into
Evolution or embed the existing ones in other applications.
%package -n glade-catalog-evolution
Summary: Glade catalog for the Evolution groupware library
Group: Development/Tools/GUI Builders
Requires: %{name} = %{version}
Requires: glade
Supplements: (glade and %{name}-devel)
%description -n glade-catalog-evolution
Evolution consists of modular components (at the moment: mailer,
calendar, and address book) that should make daily life easier. Because
of the modular design, it is possible to plug new components into
Evolution or embed the existing ones in other applications.
This package provides a catalog for Glade, to allow the use of Evolution
widgets in Glade.
%package -n evolution-plugin-bogofilter
Summary: Bogofilter plugin for the Evolution groupware suite
Group: Productivity/Networking/Email/Clients
@@ -175,12 +187,14 @@ to develop applications that require these.
%cmake \
-DLIBEXEC_INSTALL_DIR=%{_libexecdir} \
-DENABLE_YTNEF=OFF \
-DWITH_GLADE_CATALOG=ON \
-DENABLE_GTK_DOC=ON \
-DCMAKE_SKIP_INSTALL_RPATH=OFF
%cmake_build
%install
%cmake_install
%suse_update_desktop_file -r -G "Mail and Calendar" org.gnome.Evolution GNOME GTK Network Email Calendar ContactManagement
%find_lang %{name} %{?no_lang_C}
%fdupes %{buildroot}/%{_prefix}
@@ -286,6 +300,10 @@ to develop applications that require these.
%{_libdir}/evolution-data-server/camel-providers/libcamelrss.urls
%{_libdir}/evolution/modules/module-rss.so
%files -n glade-catalog-evolution
%{_libdir}/glade/modules/libgladeevolution.so
%{_datadir}/glade/catalogs/evolution.xml
%files -n evolution-plugin-bogofilter
%{_datadir}/metainfo/org.gnome.Evolution-bogofilter.metainfo.xml
%{_libdir}/evolution/modules/module-bogofilter.so