[evolution/gnome-3-16] EHTMLEditorActions - Optimize history saving for 'Cut' action
- From: Tomas Popela <tpopela src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/gnome-3-16] EHTMLEditorActions - Optimize history saving for 'Cut' action
- Date: Thu, 30 Apr 2015 06:56:28 +0000 (UTC)
commit 0f328664e9739a74f55ad18dbeb2c0edc92655d7
Author: Tomas Popela <tpopela redhat com>
Date: Thu Apr 30 08:47:49 2015 +0200
EHTMLEditorActions - Optimize history saving for 'Cut' action
Avoid leakage of history event object when the selection is collapsed (no
text to cut). Also don't count the caret coordinates after cut as they will
be the same as the start point before the action.
e-util/e-html-editor-actions.c | 20 +++++++++++---------
1 files changed, 11 insertions(+), 9 deletions(-)
---
diff --git a/e-util/e-html-editor-actions.c b/e-util/e-html-editor-actions.c
index d0f8900..0fececc 100644
--- a/e-util/e-html-editor-actions.c
+++ b/e-util/e-html-editor-actions.c
@@ -545,6 +545,13 @@ action_cut_cb (GtkAction *action,
return;
}
+ range = webkit_dom_dom_selection_get_range_at (dom_selection, 0, NULL);
+ if (webkit_dom_range_get_collapsed (range, NULL)) {
+ g_object_unref (range);
+ g_object_unref (dom_selection);
+ return;
+ }
+
selection = e_html_editor_view_get_selection (view);
ev = g_new0 (EHTMLEditorViewHistoryEvent, 1);
@@ -552,13 +559,6 @@ action_cut_cb (GtkAction *action,
e_html_editor_selection_get_selection_coordinates (
selection, &ev->before.start.x, &ev->before.start.y, &ev->before.end.x, &ev->before.end.y);
- range = webkit_dom_dom_selection_get_range_at (dom_selection, 0, NULL);
-
- if (webkit_dom_range_get_collapsed (range, NULL)) {
- g_object_unref (range);
- g_object_unref (dom_selection);
- return;
- }
/* Save the fragment. */
fragment = webkit_dom_range_clone_contents (range, NULL);
@@ -568,8 +568,10 @@ action_cut_cb (GtkAction *action,
webkit_web_view_cut_clipboard (WEBKIT_WEB_VIEW (view));
- e_html_editor_selection_get_selection_coordinates (
- selection, &ev->after.start.x, &ev->after.start.y, &ev->after.end.x, &ev->after.end.y);
+ ev->after.start.x = ev->before.start.x;
+ ev->after.start.y = ev->before.start.y;
+ ev->after.end.x = ev->before.start.x;
+ ev->after.end.y = ev->before.start.y;
e_html_editor_view_insert_new_history_event (view, ev);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]