[evolution] Composer - Undo initiated with shortcuts doesn't stop



commit 20cc9ae4fba25e4a2c352c039aa80b89ad8c7af7
Author: Tomas Popela <tpopela redhat com>
Date:   Thu May 7 11:49:20 2015 +0200

    Composer - Undo initiated with shortcuts doesn't stop
    
    It was repeating the last action.

 composer/e-msg-composer.c   |   12 ++++++++++++
 e-util/e-html-editor-view.c |    8 ++++----
 2 files changed, 16 insertions(+), 4 deletions(-)
---
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c
index 5940525..926edfe 100644
--- a/composer/e-msg-composer.c
+++ b/composer/e-msg-composer.c
@@ -2578,6 +2578,18 @@ msg_composer_key_press_event (GtkWidget *widget,
                        return TRUE;
                }
 
+               if (((event)->state & GDK_CONTROL_MASK) &&
+                   ((event)->keyval == GDK_KEY_z)) {
+                       e_html_editor_view_undo (view);
+                       return TRUE;
+               }
+
+               if (((event)->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) &&
+                   ((event)->keyval == GDK_KEY_Z)) {
+                       e_html_editor_view_redo (view);
+                       return TRUE;
+               }
+
                if (((event)->state & GDK_SHIFT_MASK) &&
                    ((event)->keyval == GDK_KEY_Delete)) {
                        g_signal_emit_by_name (
diff --git a/e-util/e-html-editor-view.c b/e-util/e-html-editor-view.c
index 377f31c..b3439c5 100644
--- a/e-util/e-html-editor-view.c
+++ b/e-util/e-html-editor-view.c
@@ -12364,10 +12364,10 @@ e_html_editor_view_redo (EHTMLEditorView *view)
        EHTMLEditorViewHistoryEvent *event;
        GList *history;
 
-       history = view->priv->history;
-       if (!history || !history->prev)
+       if (!e_html_editor_view_can_redo (view))
                return;
 
+       history = view->priv->history;
        event = history->prev->data;
        d (print_history_event (event));
 
@@ -12459,10 +12459,10 @@ e_html_editor_view_undo (EHTMLEditorView *view)
        EHTMLEditorViewHistoryEvent *event;
        GList *history;
 
-       history = view->priv->history;
-       if (!history)
+       if (!e_html_editor_view_can_undo (view))
                return;
 
+       history = view->priv->history;
        event = history->data;
        d (print_history_event (event));
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]