[evolution/wip/webkit2] Don't save the history for various HTML formatting dialogs if the formatting didn't changed
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/wip/webkit2] Don't save the history for various HTML formatting dialogs if the formatting didn't changed
- Date: Thu, 25 Feb 2016 16:45:41 +0000 (UTC)
commit 9a14dd44737dbc2300d2cf4e10b088ad9f29b7e5
Author: Tomas Popela <tpopela redhat com>
Date: Thu Feb 25 17:34:50 2016 +0100
Don't save the history for various HTML formatting dialogs if the formatting didn't changed
.../e-html-editor-cell-dialog-dom-functions.c | 8 ++++++--
.../e-html-editor-hrule-dialog-dom-functions.c | 8 ++++++--
.../e-html-editor-page-dialog-dom-functions.c | 8 ++++++--
.../e-html-editor-table-dialog-dom-functions.c | 8 ++++++--
.../composer/e-html-editor-undo-redo-manager.c | 11 +++++++++++
.../composer/e-html-editor-undo-redo-manager.h | 2 ++
6 files changed, 37 insertions(+), 8 deletions(-)
---
diff --git a/web-extensions/composer/e-html-editor-cell-dialog-dom-functions.c
b/web-extensions/composer/e-html-editor-cell-dialog-dom-functions.c
index 8c21376..25c05a3 100644
--- a/web-extensions/composer/e-html-editor-cell-dialog-dom-functions.c
+++ b/web-extensions/composer/e-html-editor-cell-dialog-dom-functions.c
@@ -297,8 +297,12 @@ e_html_editor_cell_dialog_save_history_on_exit (WebKitDOMDocument *document,
ev->data.dom.to = webkit_dom_node_clone_node (
WEBKIT_DOM_NODE (table), TRUE);
- dom_selection_get_coordinates (
- document, &ev->after.start.x, &ev->after.start.y, &ev->after.end.x, &ev->after.end.y);
+ if (!webkit_dom_node_is_equal_node (ev->data.dom.from, ev->data.dom.to)) {
+ dom_selection_get_coordinates (
+ document, &ev->after.start.x, &ev->after.start.y, &ev->after.end.x, &ev->after.end.y);
+ } else {
+ e_html_editor_undo_redo_manager_remove_current_history_event (manager);
+ }
}
void
diff --git a/web-extensions/composer/e-html-editor-hrule-dialog-dom-functions.c
b/web-extensions/composer/e-html-editor-hrule-dialog-dom-functions.c
index 10a940e..1879df8 100644
--- a/web-extensions/composer/e-html-editor-hrule-dialog-dom-functions.c
+++ b/web-extensions/composer/e-html-editor-hrule-dialog-dom-functions.c
@@ -111,6 +111,10 @@ e_html_editor_hrule_dialog_save_history_on_exit (WebKitDOMDocument *document,
ev->data.dom.to = webkit_dom_node_clone_node (
WEBKIT_DOM_NODE (element), TRUE);
- dom_selection_get_coordinates (
- document, &ev->after.start.x, &ev->after.start.y, &ev->after.end.x, &ev->after.end.y);
+ if (!webkit_dom_node_is_equal_node (ev->data.dom.from, ev->data.dom.to)) {
+ dom_selection_get_coordinates (
+ document, &ev->after.start.x, &ev->after.start.y, &ev->after.end.x, &ev->after.end.y);
+ } else {
+ e_html_editor_undo_redo_manager_remove_current_history_event (manager);
+ }
}
diff --git a/web-extensions/composer/e-html-editor-page-dialog-dom-functions.c
b/web-extensions/composer/e-html-editor-page-dialog-dom-functions.c
index b18e0bd..69c6d1e 100644
--- a/web-extensions/composer/e-html-editor-page-dialog-dom-functions.c
+++ b/web-extensions/composer/e-html-editor-page-dialog-dom-functions.c
@@ -59,6 +59,10 @@ e_html_editor_page_dialog_save_history_on_exit (WebKitDOMDocument *document,
body = webkit_dom_document_get_body (document);
ev->data.dom.to = webkit_dom_node_clone_node (WEBKIT_DOM_NODE (body), FALSE);
- dom_selection_get_coordinates (
- document, &ev->after.start.x, &ev->after.start.y, &ev->after.end.x, &ev->after.end.y);
+ if (!webkit_dom_node_is_equal_node (ev->data.dom.from, ev->data.dom.to)) {
+ dom_selection_get_coordinates (
+ document, &ev->after.start.x, &ev->after.start.y, &ev->after.end.x, &ev->after.end.y);
+ } else {
+ e_html_editor_undo_redo_manager_remove_current_history_event (manager);
+ }
}
diff --git a/web-extensions/composer/e-html-editor-table-dialog-dom-functions.c
b/web-extensions/composer/e-html-editor-table-dialog-dom-functions.c
index dc3023f..30df691 100644
--- a/web-extensions/composer/e-html-editor-table-dialog-dom-functions.c
+++ b/web-extensions/composer/e-html-editor-table-dialog-dom-functions.c
@@ -301,6 +301,10 @@ e_html_editor_table_dialog_save_history_on_exit (WebKitDOMDocument *document,
ev->data.dom.to = webkit_dom_node_clone_node (
WEBKIT_DOM_NODE (element), TRUE);
- dom_selection_get_coordinates (
- document, &ev->after.start.x, &ev->after.start.y, &ev->after.end.x, &ev->after.end.y);
+ if (!webkit_dom_node_is_equal_node (ev->data.dom.from, ev->data.dom.to)) {
+ dom_selection_get_coordinates (
+ document, &ev->after.start.x, &ev->after.start.y, &ev->after.end.x, &ev->after.end.y);
+ } else {
+ e_html_editor_undo_redo_manager_remove_current_history_event (manager);
+ }
}
diff --git a/web-extensions/composer/e-html-editor-undo-redo-manager.c
b/web-extensions/composer/e-html-editor-undo-redo-manager.c
index 68f6b08..b03b2f8 100644
--- a/web-extensions/composer/e-html-editor-undo-redo-manager.c
+++ b/web-extensions/composer/e-html-editor-undo-redo-manager.c
@@ -1667,6 +1667,17 @@ e_html_editor_undo_redo_manager_get_current_history_event (EHTMLEditorUndoRedoMa
}
void
+e_html_editor_undo_redo_manager_remove_current_history_event (EHTMLEditorUndoRedoManager *manager)
+{
+ g_return_if_fail (E_IS_HTML_EDITOR_UNDO_REDO_MANAGER (manager));
+
+ if (!manager->priv->history)
+ return;
+
+ remove_history_event (manager, manager->priv->history);
+}
+
+void
e_html_editor_undo_redo_manager_insert_dash_history_event (EHTMLEditorUndoRedoManager *manager)
{
EHTMLEditorHistoryEvent *event, *last;
diff --git a/web-extensions/composer/e-html-editor-undo-redo-manager.h
b/web-extensions/composer/e-html-editor-undo-redo-manager.h
index a60dcca..08f7456 100644
--- a/web-extensions/composer/e-html-editor-undo-redo-manager.h
+++ b/web-extensions/composer/e-html-editor-undo-redo-manager.h
@@ -81,6 +81,8 @@ void e_html_editor_undo_redo_manager_insert_history_event
EHTMLEditorHistoryEvent *
e_html_editor_undo_redo_manager_get_current_history_event
(EHTMLEditorUndoRedoManager *manager);
+void e_html_editor_undo_redo_manager_remove_current_history_event
+ (EHTMLEditorUndoRedoManager *manager);
void
e_html_editor_undo_redo_manager_insert_dash_history_event
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]