Compare commits
15 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2784217132 | ||
|
|
0b571c5be2 | ||
|
|
6d655c864e | ||
|
|
2c3026b37a | ||
|
|
93fcd52a73 | ||
|
|
d614a320e3 | ||
|
|
5bb7dc83bf | ||
|
|
06dd7b4aad | ||
|
|
a73061e962 | ||
|
|
224b751e29 | ||
|
|
d276554038 | ||
|
|
1296fae43b | ||
|
|
8c1a26d4f4 | ||
|
|
80701e2011 | ||
|
|
0bb8664bd3 |
8 changed files with 256 additions and 963 deletions
9
.gitignore
vendored
9
.gitignore
vendored
|
|
@ -83,3 +83,12 @@ evolution-2.31.5.tar.bz2
|
|||
/evolution-3.13.8.tar.xz
|
||||
/evolution-3.13.9.tar.xz
|
||||
/evolution-3.13.10.tar.xz
|
||||
/evolution-3.13.90.tar.xz
|
||||
/evolution-3.15.91.tar.xz
|
||||
/evolution-3.15.92.tar.xz
|
||||
/evolution-3.16.0.tar.xz
|
||||
/evolution-3.16.1.tar.xz
|
||||
/evolution-3.16.2.1.tar.xz
|
||||
/evolution-3.16.3.tar.xz
|
||||
/evolution-3.16.4.tar.xz
|
||||
/evolution-3.16.5.tar.xz
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
diff -up evolution-2.31.1/configure.ldaphack evolution-2.31.1/configure
|
||||
--- evolution-2.31.1/configure.ldaphack 2010-05-03 12:43:34.000000000 +0200
|
||||
+++ evolution-2.31.1/configure 2010-05-03 19:22:55.000000000 +0200
|
||||
@@ -15797,7 +15797,7 @@ if test "${ac_cv_lib_ldap_ldap_open+set}
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
-LIBS="-lldap $LDAP_LDFLAGS $LDAP_LIBS $LIBS"
|
||||
+LIBS="-lldap -lresolv $LDAP_LDFLAGS $LDAP_LIBS $LIBS"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
@@ -16129,7 +16129,7 @@ if test "${ac_cv_lib_ldap_ldap_open+set}
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
-LIBS="-lldap $LDAP_LDFLAGS $LDAP_LIBS $LIBS"
|
||||
+LIBS="-lldap -lresolv $LDAP_LDFLAGS $LDAP_LIBS $LIBS"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
|
|
@ -1,149 +0,0 @@
|
|||
diff -up evolution-3.13.6/addressbook/gui/contact-editor/e-contact-editor.c.help-contents evolution-3.13.6/addressbook/gui/contact-editor/e-contact-editor.c
|
||||
--- evolution-3.13.6/addressbook/gui/contact-editor/e-contact-editor.c.help-contents 2014-09-22 09:15:05.051468361 +0200
|
||||
+++ evolution-3.13.6/addressbook/gui/contact-editor/e-contact-editor.c 2014-09-22 09:17:01.509463747 +0200
|
||||
@@ -4143,6 +4143,10 @@ e_contact_editor_init (EContactEditor *e
|
||||
g_signal_connect (
|
||||
widget, "clicked",
|
||||
G_CALLBACK (show_help_cb), e_contact_editor);
|
||||
+ if (!e_misc_utils_is_help_package_installed ()) {
|
||||
+ gtk_widget_set_sensitive (widget, FALSE);
|
||||
+ gtk_widget_hide (widget);
|
||||
+ }
|
||||
|
||||
widget = e_builder_get_widget (
|
||||
e_contact_editor->priv->builder, "expander-contact-phone");
|
||||
diff -up evolution-3.13.6/calendar/gui/dialogs/comp-editor.c.help-contents evolution-3.13.6/calendar/gui/dialogs/comp-editor.c
|
||||
--- evolution-3.13.6/calendar/gui/dialogs/comp-editor.c.help-contents 2014-04-11 09:21:59.000000000 +0200
|
||||
+++ evolution-3.13.6/calendar/gui/dialogs/comp-editor.c 2014-09-22 09:15:05.052468361 +0200
|
||||
@@ -2168,6 +2168,12 @@ comp_editor_init (CompEditor *editor)
|
||||
G_BINDING_SYNC_CREATE);
|
||||
}
|
||||
|
||||
+ action = gtk_action_group_get_action (action_group, "help");
|
||||
+ if (action && !e_misc_utils_is_help_package_installed ()) {
|
||||
+ gtk_action_set_visible (action, FALSE);
|
||||
+ gtk_action_set_sensitive (action, FALSE);
|
||||
+ }
|
||||
+
|
||||
action_group = gtk_action_group_new ("individual");
|
||||
gtk_action_group_set_translation_domain (
|
||||
action_group, GETTEXT_PACKAGE);
|
||||
diff -up evolution-3.13.6/e-util/e-misc-utils.c.help-contents evolution-3.13.6/e-util/e-misc-utils.c
|
||||
--- evolution-3.13.6/e-util/e-misc-utils.c.help-contents 2014-07-11 08:47:35.000000000 +0200
|
||||
+++ evolution-3.13.6/e-util/e-misc-utils.c 2014-09-22 09:15:05.052468361 +0200
|
||||
@@ -2493,6 +2493,23 @@ e_binding_transform_uid_to_source (GBind
|
||||
return success;
|
||||
}
|
||||
|
||||
+gboolean
|
||||
+e_misc_utils_is_help_package_installed (void)
|
||||
+{
|
||||
+ gboolean is_installed;
|
||||
+ gchar *path;
|
||||
+
|
||||
+ /* Viewing user documentation requires the evolution-help
|
||||
+ * package. Look for one of the files it installs. */
|
||||
+ path = g_build_filename (EVOLUTION_DATADIR, "help", "C", PACKAGE, "index.page", NULL);
|
||||
+
|
||||
+ is_installed = g_file_test (path, G_FILE_TEST_IS_REGULAR);
|
||||
+
|
||||
+ g_free (path);
|
||||
+
|
||||
+ return is_installed;
|
||||
+}
|
||||
+
|
||||
/**
|
||||
* e_binding_transform_text_non_null:
|
||||
* @binding: a #GBinding
|
||||
diff -up evolution-3.13.6/e-util/e-misc-utils.h.help-contents evolution-3.13.6/e-util/e-misc-utils.h
|
||||
--- evolution-3.13.6/e-util/e-misc-utils.h.help-contents 2014-07-07 12:45:01.000000000 +0200
|
||||
+++ evolution-3.13.6/e-util/e-misc-utils.h 2014-09-22 09:15:05.052468361 +0200
|
||||
@@ -229,6 +229,8 @@ gboolean e_binding_transform_uid_to_sour
|
||||
GValue *target_value,
|
||||
ESourceRegistry *registry);
|
||||
|
||||
+gboolean e_misc_utils_is_help_package_installed (void);
|
||||
+
|
||||
gboolean e_binding_transform_text_non_null
|
||||
(GBinding *binding,
|
||||
const GValue *source_value,
|
||||
diff -up evolution-3.13.6/e-util/e-preferences-window.c.help-contents evolution-3.13.6/e-util/e-preferences-window.c
|
||||
--- evolution-3.13.6/e-util/e-preferences-window.c.help-contents 2014-02-12 20:47:07.000000000 +0100
|
||||
+++ evolution-3.13.6/e-util/e-preferences-window.c 2014-09-22 09:15:05.053468361 +0200
|
||||
@@ -385,6 +385,11 @@ e_preferences_window_init (EPreferencesW
|
||||
GTK_BUTTON_BOX (container), widget, TRUE);
|
||||
gtk_widget_show (widget);
|
||||
|
||||
+ if (!e_misc_utils_is_help_package_installed ()) {
|
||||
+ gtk_widget_set_sensitive (widget, FALSE);
|
||||
+ gtk_widget_hide (widget);
|
||||
+ }
|
||||
+
|
||||
widget = e_dialog_button_new_with_icon ("window-close", _("_Close"));
|
||||
g_signal_connect_swapped (
|
||||
widget, "clicked",
|
||||
diff -up evolution-3.13.6/e-util/e-send-options.c.help-contents evolution-3.13.6/e-util/e-send-options.c
|
||||
--- evolution-3.13.6/e-util/e-send-options.c.help-contents 2014-03-27 15:05:39.000000000 +0100
|
||||
+++ evolution-3.13.6/e-util/e-send-options.c 2014-09-22 09:15:05.053468361 +0200
|
||||
@@ -439,6 +439,7 @@ get_widgets (ESendOptionsDialog *sod)
|
||||
{
|
||||
ESendOptionsDialogPrivate *priv;
|
||||
GtkBuilder *builder;
|
||||
+ GtkWidget *helpbutton;
|
||||
|
||||
priv = sod->priv;
|
||||
builder = sod->priv->builder;
|
||||
@@ -478,6 +479,12 @@ get_widgets (ESendOptionsDialog *sod)
|
||||
priv->accepted_label = e_builder_get_widget (builder, "accepted-label");
|
||||
priv->completed_label = e_builder_get_widget (builder, "completed-label");
|
||||
|
||||
+ helpbutton = e_builder_get_widget (builder, "helpbutton1");
|
||||
+ if (helpbutton && !e_misc_utils_is_help_package_installed ()) {
|
||||
+ gtk_widget_set_sensitive (helpbutton, FALSE);
|
||||
+ gtk_widget_hide (helpbutton);
|
||||
+ }
|
||||
+
|
||||
return (priv->priority
|
||||
&& priv->security
|
||||
&& priv->status
|
||||
diff -up evolution-3.13.6/plugins/email-custom-header/email-custom-header.c.help-contents evolution-3.13.6/plugins/email-custom-header/email-custom-header.c
|
||||
--- evolution-3.13.6/plugins/email-custom-header/email-custom-header.c.help-contents 2014-06-09 16:39:38.000000000 +0200
|
||||
+++ evolution-3.13.6/plugins/email-custom-header/email-custom-header.c 2014-09-22 09:15:05.053468361 +0200
|
||||
@@ -118,6 +118,8 @@ static gboolean
|
||||
epech_get_widgets (CustomHeaderOptionsDialog *mch)
|
||||
{
|
||||
CustomHeaderOptionsDialogPrivate *priv;
|
||||
+ GtkWidget *helpbutton;
|
||||
+
|
||||
priv = mch->priv;
|
||||
|
||||
#define EMAIL_CUSTOM_HEADER(name) e_builder_get_widget (priv->builder, name)
|
||||
@@ -128,6 +130,13 @@ epech_get_widgets (CustomHeaderOptionsDi
|
||||
|
||||
priv->page = EMAIL_CUSTOM_HEADER ("email-custom-header-vbox");
|
||||
priv->header_table = EMAIL_CUSTOM_HEADER ("email-custom-header-options");
|
||||
+
|
||||
+ helpbutton = EMAIL_CUSTOM_HEADER ("helpbutton1");
|
||||
+ if (helpbutton && !e_misc_utils_is_help_package_installed ()) {
|
||||
+ gtk_widget_set_sensitive (helpbutton, FALSE);
|
||||
+ gtk_widget_hide (helpbutton);
|
||||
+ }
|
||||
+
|
||||
#undef EMAIL_CUSTOM_HEADER
|
||||
|
||||
return (priv->page
|
||||
diff -up evolution-3.13.6/shell/e-shell-window-actions.c.help-contents evolution-3.13.6/shell/e-shell-window-actions.c
|
||||
--- evolution-3.13.6/shell/e-shell-window-actions.c.help-contents 2014-03-07 14:49:13.000000000 +0100
|
||||
+++ evolution-3.13.6/shell/e-shell-window-actions.c 2014-09-22 09:15:05.053468361 +0200
|
||||
@@ -1458,6 +1458,11 @@ e_shell_window_actions_init (EShellWindo
|
||||
if (path == NULL)
|
||||
gtk_action_set_visible (ACTION (SUBMIT_BUG), FALSE);
|
||||
g_free (path);
|
||||
+
|
||||
+ if (!e_misc_utils_is_help_package_installed ()) {
|
||||
+ gtk_action_set_visible (ACTION (CONTENTS), FALSE);
|
||||
+ gtk_action_set_sensitive (ACTION (CONTENTS), FALSE);
|
||||
+ }
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
diff -up evolution-3.12.3/configure.ac.drop-gnome-icon-theme-dep evolution-3.12.3/configure.ac
|
||||
--- evolution-3.12.3/configure.ac.drop-gnome-icon-theme-dep 2014-06-09 11:33:17.814864320 +0200
|
||||
+++ evolution-3.12.3/configure.ac 2014-06-09 11:33:44.925863171 +0200
|
||||
@@ -49,7 +49,6 @@ m4_define([gtkhtml_minimum_version], [4.
|
||||
m4_define([gdk_pixbuf_minimum_version], [2.24.0])
|
||||
m4_define([gcr_minimum_version], [3.4])
|
||||
m4_define([gnome_desktop_minimum_version], [2.91.3])
|
||||
-m4_define([gnome_icon_theme_minimum_version], [2.30.2.1])
|
||||
m4_define([gsettings_desktop_schemas_minimum_version], [2.91.92])
|
||||
m4_define([webkitgtk_minimum_version], [2.0.1])
|
||||
m4_define([libgdata_minimum_version], [0.10])
|
||||
@@ -486,11 +485,6 @@ fi
|
||||
AC_CHECK_FUNCS(mkdtemp)
|
||||
|
||||
dnl **************************************************
|
||||
-dnl Gnome Icon Theme
|
||||
-dnl **************************************************
|
||||
-PKG_CHECK_MODULES([GIT], [gnome-icon-theme >= gnome_icon_theme_minimum_version])
|
||||
-
|
||||
-dnl **************************************************
|
||||
dnl Accessibility support
|
||||
dnl **************************************************
|
||||
PKG_CHECK_MODULES([A11Y], [atk])
|
||||
|
|
@ -1,742 +0,0 @@
|
|||
diff --git a/e-util/e-html-editor-selection.c b/e-util/e-html-editor-selection.c
|
||||
index 254f820..baa5b38 100644
|
||||
--- a/e-util/e-html-editor-selection.c
|
||||
+++ b/e-util/e-html-editor-selection.c
|
||||
@@ -1347,22 +1347,22 @@ set_block_alignment (WebKitDOMElement *element,
|
||||
static WebKitDOMNode *
|
||||
get_parent_block_node_from_child (WebKitDOMNode *node)
|
||||
{
|
||||
- WebKitDOMElement *parent = WEBKIT_DOM_ELEMENT (
|
||||
- webkit_dom_node_get_parent_node (node));
|
||||
+ WebKitDOMNode *parent = webkit_dom_node_get_parent_node (node);
|
||||
|
||||
- if (WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT (parent) ||
|
||||
- element_has_tag (parent, "b") ||
|
||||
- element_has_tag (parent, "i") ||
|
||||
- element_has_tag (parent, "u"))
|
||||
- parent = WEBKIT_DOM_ELEMENT (
|
||||
- webkit_dom_node_get_parent_node (WEBKIT_DOM_NODE (parent)));
|
||||
+ if (element_has_class (WEBKIT_DOM_ELEMENT (parent), "-x-evo-temp-text-wrapper") ||
|
||||
+ element_has_class (WEBKIT_DOM_ELEMENT (parent), "-x-evo-quoted") ||
|
||||
+ element_has_class (WEBKIT_DOM_ELEMENT (parent), "-x-evo-quote-character") ||
|
||||
+ element_has_class (WEBKIT_DOM_ELEMENT (parent), "-x-evo-signature") ||
|
||||
+ WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT (parent) ||
|
||||
+ element_has_tag (WEBKIT_DOM_ELEMENT (parent), "b") ||
|
||||
+ element_has_tag (WEBKIT_DOM_ELEMENT (parent), "i") ||
|
||||
+ element_has_tag (WEBKIT_DOM_ELEMENT (parent), "u"))
|
||||
+ parent = webkit_dom_node_get_parent_node (parent);
|
||||
|
||||
- if (element_has_class (parent, "-x-evo-temp-text-wrapper") ||
|
||||
- element_has_class (parent, "-x-evo-signature"))
|
||||
- parent = WEBKIT_DOM_ELEMENT (
|
||||
- webkit_dom_node_get_parent_node (WEBKIT_DOM_NODE (parent)));
|
||||
+ if (element_has_class (WEBKIT_DOM_ELEMENT (parent), "-x-evo-quoted"))
|
||||
+ parent = webkit_dom_node_get_parent_node (parent);
|
||||
|
||||
- return WEBKIT_DOM_NODE (parent);
|
||||
+ return parent;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -3771,7 +3771,7 @@ e_html_editor_selection_set_monospaced (EHTMLEditorSelection *selection,
|
||||
range, WEBKIT_DOM_NODE (monospace), NULL);
|
||||
|
||||
e_html_editor_selection_move_caret_into_element (
|
||||
- document, monospace);
|
||||
+ document, monospace, FALSE);
|
||||
}
|
||||
} else {
|
||||
gboolean is_bold, is_italic, is_underline, is_strikethrough;
|
||||
@@ -4857,7 +4857,8 @@ e_html_editor_selection_replace_image_src (EHTMLEditorSelection *selection,
|
||||
|
||||
void
|
||||
e_html_editor_selection_move_caret_into_element (WebKitDOMDocument *document,
|
||||
- WebKitDOMElement *element)
|
||||
+ WebKitDOMElement *element,
|
||||
+ gboolean to_start)
|
||||
{
|
||||
WebKitDOMDOMWindow *window;
|
||||
WebKitDOMDOMSelection *window_selection;
|
||||
@@ -4871,8 +4872,8 @@ e_html_editor_selection_move_caret_into_element (WebKitDOMDocument *document,
|
||||
new_range = webkit_dom_document_create_range (document);
|
||||
|
||||
webkit_dom_range_select_node_contents (
|
||||
- new_range, WEBKIT_DOM_NODE (element), NULL);
|
||||
- webkit_dom_range_collapse (new_range, FALSE, NULL);
|
||||
+ new_range, WEBKIT_DOM_NODE (element), NULL);
|
||||
+ webkit_dom_range_collapse (new_range, to_start, NULL);
|
||||
webkit_dom_dom_selection_remove_all_ranges (window_selection);
|
||||
webkit_dom_dom_selection_add_range (window_selection, new_range);
|
||||
}
|
||||
@@ -5071,13 +5072,13 @@ e_html_editor_selection_restore_caret_position (EHTMLEditorSelection *selection)
|
||||
remove_node (WEBKIT_DOM_NODE (element));
|
||||
|
||||
e_html_editor_selection_move_caret_into_element (
|
||||
- document, WEBKIT_DOM_ELEMENT (next_sibling));
|
||||
+ document, WEBKIT_DOM_ELEMENT (next_sibling), FALSE);
|
||||
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
- e_html_editor_selection_move_caret_into_element (document, element);
|
||||
+ e_html_editor_selection_move_caret_into_element (document, element, FALSE);
|
||||
|
||||
if (fix_after_quoting) {
|
||||
prev_sibling = webkit_dom_node_get_previous_sibling (
|
||||
@@ -6054,6 +6055,8 @@ e_html_editor_selection_save (EHTMLEditorSelection *selection)
|
||||
parent_node, marker_node, split_node, NULL);
|
||||
}
|
||||
|
||||
+ webkit_dom_node_normalize (parent_node);
|
||||
+
|
||||
end_marker:
|
||||
marker = webkit_dom_document_create_element (document, "SPAN", NULL);
|
||||
webkit_dom_element_set_id (marker, "-x-evo-selection-end-marker");
|
||||
@@ -6084,8 +6087,15 @@ e_html_editor_selection_save (EHTMLEditorSelection *selection)
|
||||
WEBKIT_DOM_NODE (marker),
|
||||
next_sibling,
|
||||
NULL);
|
||||
- return;
|
||||
+ } else {
|
||||
+ webkit_dom_node_insert_before (
|
||||
+ node,
|
||||
+ WEBKIT_DOM_NODE (marker),
|
||||
+ webkit_dom_node_get_next_sibling (
|
||||
+ webkit_dom_node_get_parent_node (parent_node)),
|
||||
+ NULL);
|
||||
}
|
||||
+ return;
|
||||
}
|
||||
|
||||
if (WEBKIT_DOM_IS_TEXT (container)) {
|
||||
@@ -6138,11 +6148,27 @@ e_html_editor_selection_save (EHTMLEditorSelection *selection)
|
||||
if (split_node) {
|
||||
parent_node = webkit_dom_node_get_parent_node (split_node);
|
||||
|
||||
- webkit_dom_node_insert_before (
|
||||
- parent_node, marker_node, split_node, NULL);
|
||||
- } else
|
||||
- webkit_dom_node_append_child (
|
||||
- WEBKIT_DOM_NODE (container), marker_node, NULL);
|
||||
+ if (WEBKIT_DOM_IS_HTML_BODY_ELEMENT (parent_node)) {
|
||||
+ webkit_dom_node_append_child (
|
||||
+ webkit_dom_node_get_previous_sibling (split_node),
|
||||
+ marker_node,
|
||||
+ NULL);
|
||||
+ } else
|
||||
+ webkit_dom_node_insert_before (
|
||||
+ parent_node, marker_node, split_node, NULL);
|
||||
+ } else {
|
||||
+ WebKitDOMNode *first_child;
|
||||
+
|
||||
+ first_child = webkit_dom_node_get_first_child (container);
|
||||
+ if (offset == 0 && WEBKIT_DOM_IS_TEXT (first_child))
|
||||
+ webkit_dom_node_insert_before (
|
||||
+ WEBKIT_DOM_NODE (container), marker_node, webkit_dom_node_get_first_child (container), NULL);
|
||||
+ else
|
||||
+ webkit_dom_node_append_child (
|
||||
+ WEBKIT_DOM_NODE (container), marker_node, NULL);
|
||||
+ }
|
||||
+
|
||||
+ webkit_dom_node_normalize (parent_node);
|
||||
|
||||
check:
|
||||
if ((next_sibling = webkit_dom_node_get_next_sibling (marker_node))) {
|
||||
diff --git a/e-util/e-html-editor-selection.h b/e-util/e-html-editor-selection.h
|
||||
index 3290dfe..5ae9492 100644
|
||||
--- a/e-util/e-html-editor-selection.h
|
||||
+++ b/e-util/e-html-editor-selection.h
|
||||
@@ -185,7 +185,8 @@ void e_html_editor_selection_insert_image
|
||||
const gchar *image_uri);
|
||||
void e_html_editor_selection_move_caret_into_element
|
||||
(WebKitDOMDocument *document,
|
||||
- WebKitDOMElement *element);
|
||||
+ WebKitDOMElement *element,
|
||||
+ gboolean to_start);
|
||||
void e_html_editor_selection_clear_caret_position_marker
|
||||
(EHTMLEditorSelection *selection);
|
||||
WebKitDOMNode *
|
||||
diff --git a/e-util/e-html-editor-view.c b/e-util/e-html-editor-view.c
|
||||
index cb97da3..aeea625 100644
|
||||
--- a/e-util/e-html-editor-view.c
|
||||
+++ b/e-util/e-html-editor-view.c
|
||||
@@ -699,12 +699,18 @@ get_parent_block_node_from_child (WebKitDOMNode *node)
|
||||
WebKitDOMNode *parent = webkit_dom_node_get_parent_node (node);
|
||||
|
||||
if (element_has_class (WEBKIT_DOM_ELEMENT (parent), "-x-evo-temp-text-wrapper") ||
|
||||
+ element_has_class (WEBKIT_DOM_ELEMENT (parent), "-x-evo-quoted") ||
|
||||
+ element_has_class (WEBKIT_DOM_ELEMENT (parent), "-x-evo-quote-character") ||
|
||||
+ element_has_class (WEBKIT_DOM_ELEMENT (parent), "-x-evo-signature") ||
|
||||
WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT (parent) ||
|
||||
element_has_tag (WEBKIT_DOM_ELEMENT (parent), "b") ||
|
||||
element_has_tag (WEBKIT_DOM_ELEMENT (parent), "i") ||
|
||||
element_has_tag (WEBKIT_DOM_ELEMENT (parent), "u"))
|
||||
parent = webkit_dom_node_get_parent_node (parent);
|
||||
|
||||
+ if (element_has_class (WEBKIT_DOM_ELEMENT (parent), "-x-evo-quoted"))
|
||||
+ parent = webkit_dom_node_get_parent_node (parent);
|
||||
+
|
||||
return parent;
|
||||
}
|
||||
|
||||
@@ -1044,17 +1050,21 @@ move_elements_to_body (WebKitDOMDocument *document)
|
||||
list = webkit_dom_document_query_selector_all (
|
||||
document, "span.-x-evo-to-body[data-credits]", NULL);
|
||||
for (ii = webkit_dom_node_list_get_length (list) - 1; ii >= 0; ii--) {
|
||||
- WebKitDOMNode *child;
|
||||
+ char *credits;
|
||||
+ WebKitDOMElement *pre_element;
|
||||
WebKitDOMNode *node = webkit_dom_node_list_item (list, ii);
|
||||
|
||||
- while ((child = webkit_dom_node_get_first_child (node))) {
|
||||
- webkit_dom_node_insert_before (
|
||||
- WEBKIT_DOM_NODE (body),
|
||||
- child,
|
||||
- webkit_dom_node_get_first_child (
|
||||
- WEBKIT_DOM_NODE (body)),
|
||||
- NULL);
|
||||
- }
|
||||
+ pre_element = webkit_dom_document_create_element (document, "pre", NULL);
|
||||
+ credits = webkit_dom_element_get_attribute (WEBKIT_DOM_ELEMENT (node), "data-credits");
|
||||
+ webkit_dom_html_element_set_inner_text (WEBKIT_DOM_HTML_ELEMENT (pre_element), credits, NULL);
|
||||
+ g_free (credits);
|
||||
+
|
||||
+ webkit_dom_node_insert_before (
|
||||
+ WEBKIT_DOM_NODE (body),
|
||||
+ WEBKIT_DOM_NODE (pre_element),
|
||||
+ webkit_dom_node_get_first_child (
|
||||
+ WEBKIT_DOM_NODE (body)),
|
||||
+ NULL);
|
||||
|
||||
remove_node (node);
|
||||
}
|
||||
@@ -2131,6 +2141,57 @@ register_input_event_listener_on_body (EHTMLEditorView *view)
|
||||
}
|
||||
|
||||
static void
|
||||
+remove_empty_blocks (WebKitDOMDocument *document)
|
||||
+{
|
||||
+ gint ii, length;
|
||||
+ WebKitDOMNodeList *list;
|
||||
+
|
||||
+ list = webkit_dom_document_query_selector_all (
|
||||
+ document, "blockquote[type=cite] > :empty", NULL);
|
||||
+
|
||||
+ length = webkit_dom_node_list_get_length (list);
|
||||
+ for (ii = 0; ii < length; ii++)
|
||||
+ remove_node (webkit_dom_node_list_item (list, ii));
|
||||
+
|
||||
+ g_object_unref (list);
|
||||
+}
|
||||
+
|
||||
+/* Following two functions are used when deleting the selection inside
|
||||
+ * the quoted content. The thing is that normally the quote marks are not
|
||||
+ * selectable by user. But this caused a lof of problems for WebKit when removing
|
||||
+ * the selection. This will avoid it as when the delete or backspace key is pressed
|
||||
+ * we will make the quote marks user selectable so they will act as any other text.
|
||||
+ * On HTML keyup event callback we will make them again non-selectable. */
|
||||
+static void
|
||||
+disable_quote_marks_select (WebKitDOMDocument *document)
|
||||
+{
|
||||
+ WebKitDOMHTMLHeadElement *head;
|
||||
+ WebKitDOMElement *style_element;
|
||||
+
|
||||
+ head = webkit_dom_document_get_head (document);
|
||||
+
|
||||
+ if (!webkit_dom_document_get_element_by_id (document, "-x-evo-quote-style")) {
|
||||
+ style_element = webkit_dom_document_create_element (document, "style", NULL);
|
||||
+ webkit_dom_element_set_id (style_element, "-x-evo-quote-style");
|
||||
+ webkit_dom_html_element_set_inner_html (
|
||||
+ WEBKIT_DOM_HTML_ELEMENT (style_element),
|
||||
+ ".-x-evo-quoted { -webkit-user-select: none; }",
|
||||
+ NULL);
|
||||
+ webkit_dom_node_append_child (
|
||||
+ WEBKIT_DOM_NODE (head), WEBKIT_DOM_NODE (style_element), NULL);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+enable_quote_marks_select (WebKitDOMDocument *document)
|
||||
+{
|
||||
+ WebKitDOMElement *style_element;
|
||||
+
|
||||
+ if ((style_element = webkit_dom_document_get_element_by_id (document, "-x-evo-quote-style")))
|
||||
+ remove_node (WEBKIT_DOM_NODE (style_element));
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
body_keyup_event_cb (WebKitDOMElement *element,
|
||||
WebKitDOMUIEvent *event,
|
||||
EHTMLEditorView *view)
|
||||
@@ -2150,99 +2211,100 @@ body_keyup_event_cb (WebKitDOMElement *element,
|
||||
* BackSpace or Delete. */
|
||||
gint level;
|
||||
WebKitDOMElement *selection_start_marker, *selection_end_marker;
|
||||
- WebKitDOMElement *br_element;
|
||||
+ WebKitDOMElement *tmp_element;
|
||||
WebKitDOMDocument *document;
|
||||
- WebKitDOMNode *node, *parent;
|
||||
+ WebKitDOMNode *parent;
|
||||
+
|
||||
+ if (e_html_editor_view_get_html_mode (view))
|
||||
+ return;
|
||||
|
||||
document = webkit_dom_node_get_owner_document (WEBKIT_DOM_NODE (element));
|
||||
|
||||
+ disable_quote_marks_select (document);
|
||||
+ /* Remove empty blocks if presented. */
|
||||
+ remove_empty_blocks (document);
|
||||
+
|
||||
e_html_editor_selection_save (selection);
|
||||
selection_start_marker = webkit_dom_document_get_element_by_id (
|
||||
document, "-x-evo-selection-start-marker");
|
||||
selection_end_marker = webkit_dom_document_get_element_by_id (
|
||||
document, "-x-evo-selection-end-marker");
|
||||
|
||||
- level = get_citation_level (
|
||||
- WEBKIT_DOM_NODE (selection_start_marker), FALSE);
|
||||
- if (level == 0)
|
||||
- goto restore;
|
||||
-
|
||||
- node = webkit_dom_node_get_previous_sibling (
|
||||
- WEBKIT_DOM_NODE (selection_start_marker));
|
||||
-
|
||||
- if (WEBKIT_DOM_IS_HTMLBR_ELEMENT (node))
|
||||
- node = webkit_dom_node_get_previous_sibling (node);
|
||||
-
|
||||
- if (node)
|
||||
- goto restore;
|
||||
-
|
||||
- parent = get_parent_block_node_from_child (
|
||||
- WEBKIT_DOM_NODE (selection_start_marker));
|
||||
-
|
||||
- node = webkit_dom_node_get_previous_sibling (parent);
|
||||
- if (!node) {
|
||||
- /* Situation where the start of the selection was in the
|
||||
- * multiple quoted content and that start on the beginning
|
||||
- * of the citation.
|
||||
- *
|
||||
- * >
|
||||
- * >> |
|
||||
- * >> xx|x
|
||||
- * */
|
||||
- node = webkit_dom_node_get_parent_node (parent);
|
||||
- if (!WEBKIT_DOM_IS_HTML_QUOTE_ELEMENT (node))
|
||||
- goto restore;
|
||||
- node = webkit_dom_node_get_previous_sibling (node);
|
||||
- if (!node)
|
||||
- goto restore;
|
||||
- if (!WEBKIT_DOM_IS_HTML_QUOTE_ELEMENT (webkit_dom_node_get_parent_node (node)))
|
||||
- goto restore;
|
||||
+ /* If we deleted a selection the caret will be inside the quote marks, fix it. */
|
||||
+ parent = webkit_dom_node_get_parent_node (WEBKIT_DOM_NODE (selection_start_marker));
|
||||
+ if (element_has_class (WEBKIT_DOM_ELEMENT (parent), "-x-evo-quote-character")) {
|
||||
+ webkit_dom_node_insert_before (
|
||||
+ webkit_dom_node_get_parent_node (
|
||||
+ webkit_dom_node_get_parent_node (parent)),
|
||||
+ WEBKIT_DOM_NODE (selection_end_marker),
|
||||
+ webkit_dom_node_get_next_sibling (
|
||||
+ webkit_dom_node_get_parent_node (parent)),
|
||||
+ NULL);
|
||||
+ webkit_dom_node_insert_before (
|
||||
+ webkit_dom_node_get_parent_node (
|
||||
+ webkit_dom_node_get_parent_node (parent)),
|
||||
+ WEBKIT_DOM_NODE (selection_start_marker),
|
||||
+ webkit_dom_node_get_next_sibling (
|
||||
+ webkit_dom_node_get_parent_node (parent)),
|
||||
+ NULL);
|
||||
}
|
||||
|
||||
- br_element = webkit_dom_element_query_selector (
|
||||
- WEBKIT_DOM_ELEMENT (node), "span.-x-evo-quote-character > br", NULL);
|
||||
- if (br_element) {
|
||||
- WebKitDOMNode *tmp;
|
||||
-
|
||||
- if (WEBKIT_DOM_IS_HTML_QUOTE_ELEMENT (node)) {
|
||||
- /* We have to select the right block when the selection
|
||||
- * started on the end of the citation that is
|
||||
- * inside another citation.
|
||||
- *
|
||||
- * >>|
|
||||
- * > xx|x
|
||||
- */
|
||||
- /* <span class="-x-evo-quote-character"> */
|
||||
- node = webkit_dom_node_get_parent_node (
|
||||
- WEBKIT_DOM_NODE (br_element));
|
||||
- /* <span class="-x-evo-quoted"> */
|
||||
- node = webkit_dom_node_get_parent_node (node);
|
||||
- /* right block */
|
||||
- node = webkit_dom_node_get_parent_node (node);
|
||||
- }
|
||||
+ /* Under some circumstances we will end with block inside the citation
|
||||
+ * that has the quote marks removed and we have to reinsert them back. */
|
||||
+ level = get_citation_level (WEBKIT_DOM_NODE (selection_start_marker), FALSE);
|
||||
+ if (level > 0) {
|
||||
+ WebKitDOMNode *prev_sibling;
|
||||
|
||||
- webkit_dom_node_append_child (
|
||||
- node, WEBKIT_DOM_NODE (selection_start_marker), NULL);
|
||||
+ prev_sibling = webkit_dom_node_get_previous_sibling (
|
||||
+ WEBKIT_DOM_NODE (selection_start_marker));
|
||||
+ if (!prev_sibling ||
|
||||
+ (WEBKIT_DOM_IS_HTMLBR_ELEMENT (prev_sibling) &&
|
||||
+ !webkit_dom_node_get_previous_sibling (prev_sibling))) {
|
||||
+ WebKitDOMElement *block;
|
||||
+
|
||||
+ block = WEBKIT_DOM_ELEMENT (get_parent_block_node_from_child (
|
||||
+ WEBKIT_DOM_NODE (selection_start_marker)));
|
||||
+ if (element_has_class (block, "-x-evo-paragraph")) {
|
||||
+ gint length, word_wrap_length;
|
||||
+
|
||||
+ word_wrap_length = e_html_editor_selection_get_word_wrap_length (selection);
|
||||
+ length = word_wrap_length - 2 * (level - 1);
|
||||
+ block = e_html_editor_selection_wrap_paragraph_length (
|
||||
+ selection, block, length);
|
||||
+ webkit_dom_node_normalize (WEBKIT_DOM_NODE (block));
|
||||
+ }
|
||||
+ quote_plain_text_element_after_wrapping (
|
||||
+ document, block, level);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
- while ((tmp = webkit_dom_node_get_next_sibling (WEBKIT_DOM_NODE (selection_end_marker))))
|
||||
- webkit_dom_node_append_child (node, tmp, NULL);
|
||||
+ /* Situation where the start of the selection was in the beginning
|
||||
+ * of the block in quoted content and the end in the beginning of
|
||||
+ * content that is after the citation or the selection end was in
|
||||
+ * the end of the quoted content (showed by ^). The correct structure
|
||||
+ * in these cases is to have empty block after the citation.
|
||||
+ *
|
||||
+ * > |xxx
|
||||
+ * > xxx^
|
||||
+ * |xxx
|
||||
+ * */
|
||||
+ tmp_element = webkit_dom_document_get_element_by_id (document, "-x-evo-tmp-block");
|
||||
+ if (tmp_element) {
|
||||
+ remove_wrapping_from_element (tmp_element);
|
||||
+ remove_quoting_from_element (tmp_element);
|
||||
+ webkit_dom_element_remove_attribute (tmp_element, "id");
|
||||
+
|
||||
+ parent = webkit_dom_node_get_parent_node (WEBKIT_DOM_NODE (tmp_element));
|
||||
+ while (parent && !WEBKIT_DOM_IS_HTML_BODY_ELEMENT (webkit_dom_node_get_parent_node (parent)))
|
||||
+ parent = webkit_dom_node_get_parent_node (parent);
|
||||
|
||||
webkit_dom_node_insert_before (
|
||||
- node,
|
||||
- WEBKIT_DOM_NODE (selection_end_marker),
|
||||
- webkit_dom_node_get_next_sibling (
|
||||
- WEBKIT_DOM_NODE (selection_start_marker)),
|
||||
+ webkit_dom_node_get_parent_node (parent),
|
||||
+ WEBKIT_DOM_NODE (tmp_element),
|
||||
+ webkit_dom_node_get_next_sibling (parent),
|
||||
NULL);
|
||||
-
|
||||
- if (!WEBKIT_DOM_IS_HTMLBR_ELEMENT (webkit_dom_node_get_last_child (node)))
|
||||
- webkit_dom_node_append_child (
|
||||
- node, WEBKIT_DOM_NODE (br_element), NULL);
|
||||
- else
|
||||
- remove_node (WEBKIT_DOM_NODE (br_element));
|
||||
-
|
||||
- remove_node (parent);
|
||||
}
|
||||
- restore:
|
||||
+
|
||||
e_html_editor_selection_restore (selection);
|
||||
} else if (key_code == HTML_KEY_CODE_CONTROL)
|
||||
html_editor_view_set_links_active (view, FALSE);
|
||||
@@ -2825,6 +2887,127 @@ change_quoted_block_to_normal (EHTMLEditorView *view)
|
||||
}
|
||||
|
||||
static gboolean
|
||||
+fix_structure_after_delete_before_quoted_content (EHTMLEditorView *view)
|
||||
+{
|
||||
+ EHTMLEditorSelection *selection;
|
||||
+ gboolean collapsed = FALSE;
|
||||
+ WebKitDOMDocument *document;
|
||||
+ WebKitDOMElement *selection_start_marker, *selection_end_marker;
|
||||
+ WebKitDOMNode *block, *node;
|
||||
+
|
||||
+ selection = e_html_editor_view_get_selection (view);
|
||||
+
|
||||
+ collapsed = e_html_editor_selection_is_collapsed (selection);
|
||||
+
|
||||
+ e_html_editor_selection_save (selection);
|
||||
+
|
||||
+ document = webkit_web_view_get_dom_document (WEBKIT_WEB_VIEW (view));
|
||||
+ selection_start_marker = webkit_dom_document_query_selector (
|
||||
+ document, "span#-x-evo-selection-start-marker", NULL);
|
||||
+ selection_end_marker = webkit_dom_document_query_selector (
|
||||
+ document, "span#-x-evo-selection-end-marker", NULL);
|
||||
+
|
||||
+ if (!selection_start_marker || !selection_end_marker)
|
||||
+ return FALSE;
|
||||
+
|
||||
+ if (collapsed) {
|
||||
+ WebKitDOMNode *next_sibling;
|
||||
+
|
||||
+ block = get_parent_block_node_from_child (
|
||||
+ WEBKIT_DOM_NODE (selection_start_marker));
|
||||
+
|
||||
+ next_sibling = webkit_dom_node_get_next_sibling (block);
|
||||
+
|
||||
+ /* Next block is quoted content */
|
||||
+ if (!WEBKIT_DOM_IS_HTML_QUOTE_ELEMENT (next_sibling))
|
||||
+ goto restore;
|
||||
+
|
||||
+ /* Delete was pressed in block without any content */
|
||||
+ if (webkit_dom_node_get_previous_sibling (WEBKIT_DOM_NODE (selection_start_marker)))
|
||||
+ goto restore;
|
||||
+
|
||||
+ /* If there is just BR element go ahead */
|
||||
+ node = webkit_dom_node_get_next_sibling (WEBKIT_DOM_NODE (selection_end_marker));
|
||||
+ if (node && !WEBKIT_DOM_IS_HTMLBR_ELEMENT (node))
|
||||
+ goto restore;
|
||||
+ else {
|
||||
+ /* Remove the empty block and move caret into the beginning of the citation */
|
||||
+ remove_node (block);
|
||||
+
|
||||
+ e_html_editor_selection_move_caret_into_element (
|
||||
+ document, WEBKIT_DOM_ELEMENT (next_sibling), TRUE);
|
||||
+
|
||||
+ return TRUE;
|
||||
+ }
|
||||
+ } else {
|
||||
+ WebKitDOMNode *end_block;
|
||||
+
|
||||
+ /* Let the quote marks be selectable to nearly correctly remove the
|
||||
+ * selection. Corrections after are done in body_keyup_event_cb. */
|
||||
+ enable_quote_marks_select (document);
|
||||
+
|
||||
+ node = webkit_dom_node_get_previous_sibling (
|
||||
+ WEBKIT_DOM_NODE (selection_start_marker));
|
||||
+
|
||||
+ if (!node || !WEBKIT_DOM_IS_ELEMENT (node))
|
||||
+ goto restore;
|
||||
+
|
||||
+ if (!element_has_class (WEBKIT_DOM_ELEMENT (node), "-x-evo-quoted"))
|
||||
+ goto restore;
|
||||
+
|
||||
+ webkit_dom_node_insert_before (
|
||||
+ webkit_dom_node_get_parent_node (WEBKIT_DOM_NODE (node)),
|
||||
+ WEBKIT_DOM_NODE (selection_start_marker),
|
||||
+ WEBKIT_DOM_NODE (node),
|
||||
+ NULL);
|
||||
+
|
||||
+ block = get_parent_block_node_from_child (
|
||||
+ WEBKIT_DOM_NODE (selection_start_marker));
|
||||
+ end_block = get_parent_block_node_from_child (
|
||||
+ WEBKIT_DOM_NODE (selection_end_marker));
|
||||
+
|
||||
+ /* Situation where the start of the selection is in the beginning
|
||||
+ * of the block in quoted content and the end in the beginning of
|
||||
+ * content that is after the citation or the selection end is in
|
||||
+ * the end of the quoted content (showed by ^). We have to
|
||||
+ * mark the start block to correctly restore the structure
|
||||
+ * afterwards.
|
||||
+ *
|
||||
+ * > |xxx
|
||||
+ * > xxx^
|
||||
+ * |xxx
|
||||
+ * */
|
||||
+ if (get_citation_level (end_block, FALSE) > 0) {
|
||||
+ WebKitDOMNode *parent;
|
||||
+
|
||||
+ if (webkit_dom_node_get_next_sibling (end_block))
|
||||
+ goto restore;
|
||||
+
|
||||
+ parent = webkit_dom_node_get_parent_node (end_block);
|
||||
+ while (parent && WEBKIT_DOM_IS_HTML_QUOTE_ELEMENT (parent)) {
|
||||
+ WebKitDOMNode *next_parent = webkit_dom_node_get_parent_node (parent);
|
||||
+
|
||||
+ if (webkit_dom_node_get_next_sibling (parent) &&
|
||||
+ !WEBKIT_DOM_IS_HTML_BODY_ELEMENT (next_parent))
|
||||
+ goto restore;
|
||||
+
|
||||
+ parent = next_parent;
|
||||
+ }
|
||||
+ }
|
||||
+ node = webkit_dom_node_get_next_sibling (
|
||||
+ WEBKIT_DOM_NODE (selection_end_marker));
|
||||
+ if (!node || WEBKIT_DOM_IS_HTMLBR_ELEMENT (node)) {
|
||||
+ webkit_dom_element_set_id (
|
||||
+ WEBKIT_DOM_ELEMENT (block), "-x-evo-tmp-block");
|
||||
+ }
|
||||
+ }
|
||||
+ restore:
|
||||
+ e_html_editor_selection_restore (selection);
|
||||
+
|
||||
+ return FALSE;
|
||||
+}
|
||||
+
|
||||
+static gboolean
|
||||
html_editor_view_key_press_event (GtkWidget *widget,
|
||||
GdkEventKey *event)
|
||||
{
|
||||
@@ -2916,6 +3099,10 @@ html_editor_view_key_press_event (GtkWidget *widget,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+ if (event->keyval == GDK_KEY_Delete || event->keyval == GDK_KEY_BackSpace)
|
||||
+ if (fix_structure_after_delete_before_quoted_content (view))
|
||||
+ return TRUE;
|
||||
+
|
||||
/* Chain up to parent's key_press_event() method. */
|
||||
return GTK_WIDGET_CLASS (e_html_editor_view_parent_class)->
|
||||
key_press_event (widget, event);
|
||||
@@ -4570,6 +4757,9 @@ clear_attributes (WebKitDOMDocument *document)
|
||||
while (webkit_dom_node_get_first_child (WEBKIT_DOM_NODE (head)))
|
||||
remove_node (webkit_dom_node_get_first_child (WEBKIT_DOM_NODE (head)));
|
||||
|
||||
+ /* Make the quote marks non-selectable. */
|
||||
+ disable_quote_marks_select (document);
|
||||
+
|
||||
/* Remove non Evolution attributes from BODY element */
|
||||
attributes = webkit_dom_element_get_attributes (WEBKIT_DOM_ELEMENT (body));
|
||||
length = webkit_dom_named_node_map_get_length (attributes);
|
||||
@@ -4718,16 +4908,20 @@ html_editor_convert_view_content (EHTMLEditorView *view,
|
||||
document, "span.-x-evo-to-body[data-credits]", NULL);
|
||||
length = webkit_dom_node_list_get_length (list);
|
||||
for (ii = 0; ii < length; ii++) {
|
||||
- WebKitDOMNode *node, *child;
|
||||
+ char *credits;
|
||||
+ WebKitDOMElement *pre_element;
|
||||
+ WebKitDOMNode *node = webkit_dom_node_list_item (list, ii);
|
||||
|
||||
- node = webkit_dom_node_list_item (list, ii);
|
||||
- while ((child = webkit_dom_node_get_first_child (node))) {
|
||||
- webkit_dom_node_insert_before (
|
||||
- WEBKIT_DOM_NODE (wrapper),
|
||||
- child,
|
||||
- WEBKIT_DOM_NODE (content_wrapper),
|
||||
- NULL);
|
||||
- }
|
||||
+ pre_element = webkit_dom_document_create_element (document, "pre", NULL);
|
||||
+ credits = webkit_dom_element_get_attribute (WEBKIT_DOM_ELEMENT (node), "data-credits");
|
||||
+ webkit_dom_html_element_set_inner_text (WEBKIT_DOM_HTML_ELEMENT (pre_element), credits, NULL);
|
||||
+ g_free (credits);
|
||||
+
|
||||
+ webkit_dom_node_insert_before (
|
||||
+ WEBKIT_DOM_NODE (wrapper),
|
||||
+ WEBKIT_DOM_NODE (pre_element),
|
||||
+ WEBKIT_DOM_NODE (content_wrapper),
|
||||
+ NULL);
|
||||
|
||||
remove_node (node);
|
||||
}
|
||||
@@ -4927,6 +5121,8 @@ html_editor_view_insert_converted_html_into_selection (EHTMLEditorView *view,
|
||||
document, "-x-evo-selection-end-marker");
|
||||
current_block = get_parent_block_node_from_child (
|
||||
WEBKIT_DOM_NODE (selection_start_marker));
|
||||
+ if (WEBKIT_DOM_IS_HTML_BODY_ELEMENT (current_block))
|
||||
+ current_block = NULL;
|
||||
|
||||
element = webkit_dom_document_create_element (document, "div", NULL);
|
||||
if (is_html) {
|
||||
@@ -6230,9 +6426,6 @@ process_elements (EHTMLEditorView *view,
|
||||
remove_base_attributes (WEBKIT_DOM_ELEMENT (child));
|
||||
remove_evolution_attributes (WEBKIT_DOM_ELEMENT (child));
|
||||
}
|
||||
- if (!changing_mode && to_plain_text)
|
||||
- if (!webkit_dom_node_has_child_nodes (child))
|
||||
- g_string_append (buffer, "\n");
|
||||
}
|
||||
|
||||
/* Signature */
|
||||
@@ -6261,7 +6454,6 @@ process_elements (EHTMLEditorView *view,
|
||||
WEBKIT_DOM_HTML_ELEMENT (child));
|
||||
g_string_append (buffer, content);
|
||||
g_free (content);
|
||||
- skip_node = TRUE;
|
||||
}
|
||||
skip_node = TRUE;
|
||||
goto next;
|
||||
@@ -7043,6 +7235,9 @@ html_editor_view_load_status_changed (EHTMLEditorView *view)
|
||||
webkit_dom_element_set_attribute (
|
||||
WEBKIT_DOM_ELEMENT (body), "data-message", "", NULL);
|
||||
|
||||
+ /* Make the quote marks non-selectable. */
|
||||
+ disable_quote_marks_select (document);
|
||||
+
|
||||
if (view->priv->convert_in_situ) {
|
||||
html_editor_convert_view_content (view, NULL);
|
||||
view->priv->convert_in_situ = FALSE;
|
||||
@@ -7057,7 +7252,7 @@ html_editor_view_load_status_changed (EHTMLEditorView *view)
|
||||
if (webkit_dom_element_get_attribute (WEBKIT_DOM_ELEMENT (body), "data-evo-draft")) {
|
||||
/* Restore the selection how it was when the draft was saved */
|
||||
e_html_editor_selection_move_caret_into_element (
|
||||
- document, WEBKIT_DOM_ELEMENT (body));
|
||||
+ document, WEBKIT_DOM_ELEMENT (body), FALSE);
|
||||
e_html_editor_selection_restore (
|
||||
e_html_editor_view_get_selection (view));
|
||||
}
|
||||
@@ -7812,7 +8007,8 @@ e_html_editor_view_update_fonts (EHTMLEditorView *view)
|
||||
" font-family: '%s';\n"
|
||||
" font-size: %dpt;\n"
|
||||
" font-weight: %d;\n"
|
||||
- " font-style: %s;\n",
|
||||
+ " font-style: %s;\n"
|
||||
+ " -webkit-line-break: after-white-space;\n",
|
||||
pango_font_description_get_family (vw),
|
||||
pango_font_description_get_size (vw) / PANGO_SCALE,
|
||||
pango_font_description_get_weight (vw),
|
||||
@@ -8007,13 +8203,6 @@ e_html_editor_view_update_fonts (EHTMLEditorView *view)
|
||||
|
||||
g_string_append (stylesheet, "}\n");
|
||||
|
||||
- g_string_append (
|
||||
- stylesheet,
|
||||
- ".-x-evo-quoted "
|
||||
- "{\n"
|
||||
- " -webkit-user-select: none;\n"
|
||||
- "}\n");
|
||||
-
|
||||
g_string_append_printf (
|
||||
stylesheet,
|
||||
".-x-evo-quote-character "
|
||||
diff --git a/em-format/e-mail-formatter-quote.c b/em-format/e-mail-formatter-quote.c
|
||||
index 4df8be6..1916bba 100644
|
||||
--- a/em-format/e-mail-formatter-quote.c
|
||||
+++ b/em-format/e-mail-formatter-quote.c
|
||||
@@ -122,7 +122,7 @@ mail_formatter_quote_run (EMailFormatter *formatter,
|
||||
* the special span element and it will be moved to body in EHTMLEditorView */
|
||||
if (qf->priv->credits && *qf->priv->credits) {
|
||||
gchar *credits = g_strdup_printf (
|
||||
- "<span class=\"-x-evo-to-body\" data-credits><pre>%s</pre></span>",
|
||||
+ "<span class=\"-x-evo-to-body\" data-credits=\"%s\"></span>",
|
||||
qf->priv->credits);
|
||||
g_output_stream_write_all (
|
||||
stream, credits, strlen (credits), NULL, cancellable, NULL);
|
||||
@@ -133,7 +133,7 @@ mail_formatter_quote_run (EMailFormatter *formatter,
|
||||
* after the message and cite it in EHTMLEditorView because of reasons
|
||||
* mentioned above */
|
||||
if (qf->priv->flags & E_MAIL_FORMATTER_QUOTE_FLAG_CITE) {
|
||||
- string = "<span class=\"-x-evo-cite-body\"><span>";
|
||||
+ string = "<span class=\"-x-evo-cite-body\"></span>";
|
||||
g_output_stream_write_all (
|
||||
stream, string, strlen (string), NULL, cancellable, NULL);
|
||||
}
|
||||
diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c
|
||||
index 795ac9e..fcba621 100644
|
||||
--- a/mail/em-composer-utils.c
|
||||
+++ b/mail/em-composer-utils.c
|
||||
@@ -2871,8 +2871,7 @@ composer_set_body (EMsgComposer *composer,
|
||||
original = quoting_text (QUOTING_ORIGINAL);
|
||||
text = em_utils_message_to_html (
|
||||
session, message, original, E_MAIL_FORMATTER_QUOTE_FLAG_HEADERS,
|
||||
- parts_list, "<span id=\"-x-evolution-reply-citation\">",
|
||||
- "</span>", &validity_found);
|
||||
+ parts_list, NULL, NULL, &validity_found);
|
||||
e_msg_composer_set_body_text (composer, text, TRUE);
|
||||
g_free (text);
|
||||
g_free (original);
|
||||
@@ -2885,8 +2884,7 @@ composer_set_body (EMsgComposer *composer,
|
||||
credits = attribution_format (message);
|
||||
text = em_utils_message_to_html (
|
||||
session, message, credits, E_MAIL_FORMATTER_QUOTE_FLAG_CITE,
|
||||
- parts_list, "<span id=\"-x-evolution-reply-citation\">",
|
||||
- "</span>", &validity_found);
|
||||
+ parts_list, NULL, NULL, &validity_found);
|
||||
g_free (credits);
|
||||
e_msg_composer_set_body_text (composer, text, TRUE);
|
||||
g_free (text);
|
||||
182
evolution-3.16.5-crash-message-digest.patch
Normal file
182
evolution-3.16.5-crash-message-digest.patch
Normal file
|
|
@ -0,0 +1,182 @@
|
|||
diff -up evolution-3.16.5/em-format/e-mail-formatter-attachment.c.crash-message-digest evolution-3.16.5/em-format/e-mail-formatter-attachment.c
|
||||
--- evolution-3.16.5/em-format/e-mail-formatter-attachment.c.crash-message-digest 2015-05-29 12:40:05.000000000 +0200
|
||||
+++ evolution-3.16.5/em-format/e-mail-formatter-attachment.c 2015-08-19 17:22:36.616380858 +0200
|
||||
@@ -320,7 +320,7 @@ emfe_attachment_format (EMailFormatterEx
|
||||
}
|
||||
|
||||
if (success) {
|
||||
- gchar *wrapper_element_id, *inner_html_data;
|
||||
+ gchar *wrapper_element_id;
|
||||
gconstpointer data;
|
||||
gsize size;
|
||||
|
||||
@@ -332,20 +332,33 @@ emfe_attachment_format (EMailFormatterEx
|
||||
size = g_memory_output_stream_get_data_size (
|
||||
G_MEMORY_OUTPUT_STREAM (content_stream));
|
||||
|
||||
- inner_html_data = g_markup_escape_text (data, size);
|
||||
-
|
||||
g_string_append_printf (
|
||||
buffer,
|
||||
"<tr><td colspan=\"2\">"
|
||||
- "<div class=\"attachment-wrapper\" id=\"%s\" inner-html-data=\"%s\">",
|
||||
- wrapper_element_id, inner_html_data);
|
||||
+ "<div class=\"attachment-wrapper\" id=\"%s\"",
|
||||
+ wrapper_element_id);
|
||||
+
|
||||
+ if (e_mail_part_should_show_inline (part)) {
|
||||
+ g_string_append (buffer, ">");
|
||||
+ g_string_append_len (buffer, data, size);
|
||||
+ } else {
|
||||
+ gchar *inner_html_data;
|
||||
+
|
||||
+ inner_html_data = g_markup_escape_text (data, size);
|
||||
+
|
||||
+ g_string_append_printf (
|
||||
+ buffer,
|
||||
+ " inner-html-data=\"%s\">",
|
||||
+ inner_html_data);
|
||||
+
|
||||
+ g_free (inner_html_data);
|
||||
+ }
|
||||
|
||||
g_string_append (buffer, "</div></td></tr>");
|
||||
|
||||
- e_mail_part_attachment_set_expandable (E_MAIL_PART_ATTACHMENT (part), TRUE);
|
||||
+ e_mail_part_attachment_set_expandable (empa, TRUE);
|
||||
|
||||
g_free (wrapper_element_id);
|
||||
- g_free (inner_html_data);
|
||||
}
|
||||
|
||||
g_object_unref (content_stream);
|
||||
diff -up evolution-3.16.5/em-format/e-mail-part.c.crash-message-digest evolution-3.16.5/em-format/e-mail-part.c
|
||||
--- evolution-3.16.5/em-format/e-mail-part.c.crash-message-digest 2014-03-24 10:25:23.000000000 +0100
|
||||
+++ evolution-3.16.5/em-format/e-mail-part.c 2015-08-19 17:22:36.616380858 +0200
|
||||
@@ -26,10 +26,15 @@
|
||||
* message.
|
||||
*/
|
||||
|
||||
+#ifdef HAVE_CONFIG_H
|
||||
+#include <config.h>
|
||||
+#endif
|
||||
+
|
||||
#include "e-mail-part.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
+#include "e-mail-part-attachment.h"
|
||||
#include "e-mail-part-list.h"
|
||||
|
||||
#define E_MAIL_PART_GET_PRIVATE(obj) \
|
||||
@@ -441,6 +446,46 @@ e_mail_part_set_mime_type (EMailPart *pa
|
||||
g_object_notify (G_OBJECT (part), "mime-type");
|
||||
}
|
||||
|
||||
+gboolean
|
||||
+e_mail_part_should_show_inline (EMailPart *part)
|
||||
+{
|
||||
+ CamelMimePart *mime_part;
|
||||
+ const CamelContentDisposition *disposition;
|
||||
+ gboolean res = FALSE;
|
||||
+
|
||||
+ g_return_val_if_fail (E_IS_MAIL_PART (part), FALSE);
|
||||
+
|
||||
+ /* Automatically expand attachments that have inline
|
||||
+ * disposition or the EMailParts have specific
|
||||
+ * force_inline flag set. */
|
||||
+
|
||||
+ if (part->force_collapse)
|
||||
+ return FALSE;
|
||||
+
|
||||
+ if (part->force_inline)
|
||||
+ return TRUE;
|
||||
+
|
||||
+ if (E_IS_MAIL_PART_ATTACHMENT (part)) {
|
||||
+ EMailPartAttachment *empa = E_MAIL_PART_ATTACHMENT (part);
|
||||
+
|
||||
+ if (g_strcmp0 (empa->snoop_mime_type, "message/rfc822") == 0)
|
||||
+ return TRUE;
|
||||
+ }
|
||||
+
|
||||
+ mime_part = e_mail_part_ref_mime_part (part);
|
||||
+ if (!mime_part)
|
||||
+ return FALSE;
|
||||
+
|
||||
+ disposition = camel_mime_part_get_content_disposition (mime_part);
|
||||
+ if (disposition && disposition->disposition &&
|
||||
+ g_ascii_strncasecmp (disposition->disposition, "inline", 6) == 0)
|
||||
+ res = TRUE;
|
||||
+
|
||||
+ g_object_unref (mime_part);
|
||||
+
|
||||
+ return res;
|
||||
+}
|
||||
+
|
||||
EMailPartList *
|
||||
e_mail_part_ref_part_list (EMailPart *part)
|
||||
{
|
||||
diff -up evolution-3.16.5/em-format/e-mail-part.h.crash-message-digest evolution-3.16.5/em-format/e-mail-part.h
|
||||
--- evolution-3.16.5/em-format/e-mail-part.h.crash-message-digest 2014-03-24 10:25:23.000000000 +0100
|
||||
+++ evolution-3.16.5/em-format/e-mail-part.h 2015-08-19 17:22:36.616380858 +0200
|
||||
@@ -107,6 +107,7 @@ CamelMimePart * e_mail_part_ref_mime_par
|
||||
const gchar * e_mail_part_get_mime_type (EMailPart *part);
|
||||
void e_mail_part_set_mime_type (EMailPart *part,
|
||||
const gchar *mime_type);
|
||||
+gboolean e_mail_part_should_show_inline (EMailPart *part);
|
||||
struct _EMailPartList *
|
||||
e_mail_part_ref_part_list (EMailPart *part);
|
||||
void e_mail_part_set_part_list (EMailPart *part,
|
||||
diff -up evolution-3.16.5/mail/e-mail-display.c.crash-message-digest evolution-3.16.5/mail/e-mail-display.c
|
||||
--- evolution-3.16.5/mail/e-mail-display.c.crash-message-digest 2015-05-29 12:40:05.000000000 +0200
|
||||
+++ evolution-3.16.5/mail/e-mail-display.c 2015-08-19 17:23:52.369377648 +0200
|
||||
@@ -471,6 +471,8 @@ attachment_button_expanded (GObject *obj
|
||||
|
||||
html_element = WEBKIT_DOM_HTML_ELEMENT (element);
|
||||
webkit_dom_html_element_set_inner_html (html_element, inner_html_data, NULL);
|
||||
+
|
||||
+ webkit_dom_element_remove_attribute (element, "inner-html-data");
|
||||
}
|
||||
|
||||
g_free (inner_html_data);
|
||||
@@ -668,9 +670,6 @@ mail_display_plugin_widget_requested (We
|
||||
e_mail_part_attachment_get_expandable (empa));
|
||||
|
||||
if (e_mail_part_attachment_get_expandable (empa)) {
|
||||
- CamelMimePart *mime_part;
|
||||
- const CamelContentDisposition *disposition;
|
||||
-
|
||||
/* Show/hide the attachment when the EAttachmentButton
|
||||
* is expanded/collapsed or shown/hidden. */
|
||||
g_signal_connect (
|
||||
@@ -682,20 +681,7 @@ mail_display_plugin_widget_requested (We
|
||||
G_CALLBACK (attachment_button_expanded),
|
||||
display);
|
||||
|
||||
- mime_part = e_mail_part_ref_mime_part (part);
|
||||
-
|
||||
- /* Automatically expand attachments that have inline
|
||||
- * disposition or the EMailParts have specific
|
||||
- * force_inline flag set. */
|
||||
- disposition =
|
||||
- camel_mime_part_get_content_disposition (mime_part);
|
||||
- if (!part->force_collapse &&
|
||||
- (part->force_inline ||
|
||||
- (g_strcmp0 (empa->snoop_mime_type, "message/rfc822") == 0) ||
|
||||
- (disposition && disposition->disposition &&
|
||||
- g_ascii_strncasecmp (
|
||||
- disposition->disposition, "inline", 6) == 0))) {
|
||||
-
|
||||
+ if (e_mail_part_should_show_inline (part)) {
|
||||
e_attachment_button_set_expanded (
|
||||
E_ATTACHMENT_BUTTON (widget), TRUE);
|
||||
} else {
|
||||
@@ -704,8 +690,6 @@ mail_display_plugin_widget_requested (We
|
||||
attachment_button_expanded (
|
||||
G_OBJECT (widget), NULL, display);
|
||||
}
|
||||
-
|
||||
- g_object_unref (mime_part);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1,17 +1,16 @@
|
|||
%global _changelog_trimtime %(date +%s -d "1 year ago")
|
||||
|
||||
%define glib2_version 2.36.0
|
||||
%define gtk3_version 3.4.0
|
||||
%define gtkhtml_version 4.5.2
|
||||
%define glib2_version 2.40.0
|
||||
%define gtk3_version 3.10.0
|
||||
%define gnome_desktop_version 2.91.3
|
||||
%define gnome_doc_utils_version 0.8.0
|
||||
%define intltool_version 0.35.5
|
||||
%define libgdata_version 0.10.0
|
||||
%define libgweather_version 3.5.0
|
||||
%define libsoup_version 2.40.3
|
||||
%define webkit_version 1.8.0
|
||||
%define webkit_version 2.2.0
|
||||
|
||||
%define evo_base_version 3.14
|
||||
%define evo_base_version 3.16
|
||||
|
||||
%define last_anjal_version 0.3.2-3
|
||||
%define last_libgal2_version 2:2.5.3-2
|
||||
|
|
@ -29,14 +28,14 @@
|
|||
### Abstract ###
|
||||
|
||||
Name: evolution
|
||||
Version: 3.13.10
|
||||
Release: 2%{?dist}
|
||||
Version: 3.16.5
|
||||
Release: 3%{?dist}
|
||||
Group: Applications/Productivity
|
||||
Summary: Mail and calendar client for GNOME
|
||||
License: GPLv2+ and GFDL
|
||||
URL: https://wiki.gnome.org/Apps/Evolution
|
||||
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||||
Source: http://download.gnome.org/sources/%{name}/3.13/%{name}-%{version}.tar.xz
|
||||
Source: http://download.gnome.org/sources/%{name}/3.16/%{name}-%{version}.tar.xz
|
||||
|
||||
Obsoletes: anjal <= %{last_anjal_version}
|
||||
Obsoletes: libgal2 <= %{last_libgal2_version}
|
||||
|
|
@ -44,14 +43,8 @@ Obsoletes: evolution-NetworkManager < %{last_evo_nm_version}
|
|||
|
||||
### Patches ###
|
||||
|
||||
# bad hack
|
||||
Patch01: evolution-1.4.4-ldap-x86_64-hack.patch
|
||||
|
||||
# RH bug #589555
|
||||
Patch02: evolution-2.30.1-help-contents.patch
|
||||
|
||||
# Backport WebKit composer fixes to test them in the wild
|
||||
Patch03: evolution-3.13.10-composer-backports.patch
|
||||
# RH bug #1231591
|
||||
Patch01: evolution-3.16.5-crash-message-digest.patch
|
||||
|
||||
## Dependencies ###
|
||||
|
||||
|
|
@ -87,16 +80,15 @@ BuildRequires: pkgconfig(gmodule-2.0) >= %{glib2_version}
|
|||
BuildRequires: pkgconfig(gnome-desktop-3.0) >= %{gnome_desktop_version}
|
||||
BuildRequires: pkgconfig(gsettings-desktop-schemas)
|
||||
BuildRequires: pkgconfig(gtk+-3.0) >= %{gtk3_version}
|
||||
BuildRequires: pkgconfig(gtkhtml-editor-4.0) >= %{gtkhtml_version}
|
||||
BuildRequires: pkgconfig(gtkspell3-3.0)
|
||||
BuildRequires: pkgconfig(gweather-3.0) >= %{libgweather_version}
|
||||
BuildRequires: pkgconfig(iso-codes)
|
||||
BuildRequires: pkgconfig(libcanberra-gtk3)
|
||||
BuildRequires: pkgconfig(libebackend-1.2) >= %{version}
|
||||
BuildRequires: pkgconfig(libebook-1.2) >= %{version}
|
||||
BuildRequires: pkgconfig(libecal-1.2) >= %{version}
|
||||
BuildRequires: pkgconfig(libedataserver-1.2) >= %{version}
|
||||
BuildRequires: pkgconfig(libgdata) >= %{libgdata_version}
|
||||
BuildRequires: pkgconfig(libgtkhtml-4.0) >= %{gtkhtml_version}
|
||||
BuildRequires: pkgconfig(libsoup-2.4) >= %{libsoup_version}
|
||||
BuildRequires: pkgconfig(libxml-2.0)
|
||||
BuildRequires: pkgconfig(nspr)
|
||||
|
|
@ -129,7 +121,6 @@ Requires: %{name} = %{version}-%{release}
|
|||
Requires: pkgconfig(camel-1.2) >= %{version}
|
||||
Requires: pkgconfig(cryptui-0.0)
|
||||
Requires: pkgconfig(gtk+-3.0) >= %{gtk3_version}
|
||||
Requires: pkgconfig(gtkhtml-editor-4.0) >= %{gtkhtml_version}
|
||||
Requires: pkgconfig(gtkspell3-3.0)
|
||||
Requires: pkgconfig(gweather-3.0) >= %{libgweather_version}
|
||||
Requires: pkgconfig(libebackend-1.2) >= %{version}
|
||||
|
|
@ -137,7 +128,6 @@ Requires: pkgconfig(libebook-1.2) >= %{version}
|
|||
Requires: pkgconfig(libecal-1.2) >= %{version}
|
||||
Requires: pkgconfig(libedataserver-1.2) >= %{version}
|
||||
Requires: pkgconfig(libgdata) >= %{libgdata_version}
|
||||
Requires: pkgconfig(libgtkhtml-4.0) >= %{gtkhtml_version}
|
||||
Requires: pkgconfig(libsoup-2.4) >= %{libsoup_version}
|
||||
Requires: pkgconfig(libxml-2.0)
|
||||
Obsoletes: libgal2-devel <= %{last_libgal2_version}
|
||||
|
|
@ -217,9 +207,7 @@ the functionality of the installed %{name} package.
|
|||
|
||||
%prep
|
||||
%setup -q -n evolution-%{version}
|
||||
%patch01 -p1 -b .ldaphack
|
||||
%patch02 -p1 -b .help-contents
|
||||
%patch03 -p1 -b .composer_backports
|
||||
%patch01 -p1 -b .crash-message-digest
|
||||
|
||||
# Remove the welcome email from Novell
|
||||
for inbox in mail/default/*/Inbox; do
|
||||
|
|
@ -242,13 +230,12 @@ if ! pkg-config --exists nss; then
|
|||
fi
|
||||
|
||||
%if %{with_docs}
|
||||
%define gtkdoc_flags --enable-gtk-doc
|
||||
%define gtkdoc_flags --enable-gtk-doc --with-help
|
||||
%else
|
||||
%define gtkdoc_flags --disable-gtk-doc
|
||||
%define gtkdoc_flags --disable-gtk-doc --without-help
|
||||
%endif
|
||||
|
||||
CPPFLAGS="-I%{_includedir}/et"; export CPPFLAGS
|
||||
CFLAGS="$RPM_OPT_FLAGS -fPIC -DLDAP_DEPRECATED -I%{_includedir}/et -Wno-sign-compare -Wno-deprecated-declarations"; export CFLAGS
|
||||
CFLAGS="$RPM_OPT_FLAGS -fPIC -DLDAP_DEPRECATED -Wno-sign-compare -Wno-deprecated-declarations"; export CFLAGS
|
||||
|
||||
# Regenerate configure to pick up configure.ac changes
|
||||
aclocal -I m4
|
||||
|
|
@ -318,7 +305,9 @@ find $RPM_BUILD_ROOT/%{_libdir}/evolution -name '*.a' -exec rm {} \;
|
|||
%find_lang evolution-%{evo_base_version} --all-name --with-gnome
|
||||
|
||||
grep "/usr/share/locale" evolution-%{evo_base_version}.lang > translations.lang
|
||||
%if %{with_docs}
|
||||
grep -v "/usr/share/locale" evolution-%{evo_base_version}.lang > help.lang
|
||||
%endif
|
||||
|
||||
%post
|
||||
/sbin/ldconfig
|
||||
|
|
@ -383,6 +372,7 @@ rm -rf $RPM_BUILD_ROOT
|
|||
%{_datadir}/icons/hicolor/32x32/apps/*
|
||||
%{_datadir}/icons/hicolor/48x48/apps/*
|
||||
%{_datadir}/icons/hicolor/256x256/apps/*
|
||||
%{_datadir}/icons/hicolor/symbolic/apps/*
|
||||
|
||||
# The main data directory
|
||||
# (have not attempted to split this up into an explicit list)
|
||||
|
|
@ -547,6 +537,53 @@ rm -rf $RPM_BUILD_ROOT
|
|||
%{_datadir}/installed-tests
|
||||
|
||||
%changelog
|
||||
* Tue Sep 08 2015 Milan Crha <mcrha@redhat.com> - 3.16.5-3
|
||||
- Add pkgconfig(iso-codes) into BuildRequires
|
||||
|
||||
* Wed Aug 19 2015 Milan Crha <mcrha@redhat.com> - 3.16.5-2
|
||||
- Add patch for RH bug #1231591 (Crash when viewing message digest)
|
||||
|
||||
* Mon Aug 10 2015 Milan Crha <mcrha@redhat.com> - 3.16.5-1
|
||||
- Update to 3.16.5
|
||||
- Remove patch for RH bug #1243680 (Fixed upstream)
|
||||
|
||||
* Thu Jul 16 2015 Milan Crha <mcrha@redhat.com> - 3.16.4-2
|
||||
- Add patch for RH bug #1243680 (Replacement of misspelled word doesn't work in composer)
|
||||
|
||||
* Mon Jul 13 2015 Milan Crha <mcrha@redhat.com> - 3.16.4-1
|
||||
- Update to 3.16.4
|
||||
- Remove patch for RH bug #1229230 (Fixed upstream)
|
||||
|
||||
* Mon Jun 08 2015 Milan Crha <mcrha@redhat.com> - 3.16.3-2
|
||||
- Add patch for RH bug #1229230 (Broken save of filter rules)
|
||||
|
||||
* Mon Jun 08 2015 Milan Crha <mcrha@redhat.com> - 3.16.3-1
|
||||
- Update to 3.16.3
|
||||
- Disable help build when gtk-doc is disabled
|
||||
|
||||
* Thu May 28 2015 Debarshi Ray <rishi@fedoraproject.org> - 3.16.2.1-2
|
||||
- Rebuild for libgdata soname bump
|
||||
|
||||
* Mon May 11 2015 Milan Crha <mcrha@redhat.com> - 3.16.2.1-1
|
||||
- Update to 3.16.2.1
|
||||
|
||||
* Mon Apr 13 2015 Milan Crha <mcrha@redhat.com> - 3.16.1-1
|
||||
- Update to 3.16.1
|
||||
|
||||
* Mon Mar 23 2015 Milan Crha <mcrha@redhat.com> - 3.16.0-1
|
||||
- Update to 3.16.0
|
||||
|
||||
* Mon Mar 16 2015 Milan Crha <mcrha@redhat.com> - 3.15.92-1
|
||||
- Update to 3.15.92
|
||||
- Remove obsolete patches (one unused and one fixed upstream)
|
||||
|
||||
* Mon Mar 02 2015 Milan Crha <mcrha@redhat.com> - 3.15.91-1
|
||||
- Update to 3.15.91
|
||||
|
||||
* Mon Feb 16 2015 Milan Crha <mcrha@redhat.com> - 3.13.90-1
|
||||
- Update to 3.13.90
|
||||
- Remove WebKit composer patches (fixed upstream)
|
||||
|
||||
* Mon Feb 02 2015 Tomas Popela <tpopela@redhat.com> - 3.13.10-2
|
||||
- Backport the WebKit composer patches
|
||||
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
b19376206d98624a5f232a7826872e3f evolution-3.13.10.tar.xz
|
||||
f9182138883391727e78a6ac7f7b80d7 evolution-3.16.5.tar.xz
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue