diff options
Diffstat (limited to 'e-util/e-text-event-processor-emacs-like.c')
-rw-r--r-- | e-util/e-text-event-processor-emacs-like.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/e-util/e-text-event-processor-emacs-like.c b/e-util/e-text-event-processor-emacs-like.c index 652e4b9ff6..6ee51d98e3 100644 --- a/e-util/e-text-event-processor-emacs-like.c +++ b/e-util/e-text-event-processor-emacs-like.c @@ -59,7 +59,7 @@ static const ETextEventProcessorCommand control_keys[26] = { E_TEP_SELECTION, E_TEP_NOP, 0, "" }, /* t */ { E_TEP_START_OF_LINE, E_TEP_DELETE, 0, "" }, /* u */ { E_TEP_SELECTION, E_TEP_PASTE, 0, "" }, /* v */ - { E_TEP_SELECTION, E_TEP_DELETE, 0, "" }, /* w */ + { E_TEP_SELECTION, E_TEP_NOP, 0, "" }, /* w */ { E_TEP_SELECTION, E_TEP_DELETE, 0, "" }, /* x */ { E_TEP_SELECTION, E_TEP_PASTE, 0, "" }, /* y */ { E_TEP_SELECTION, E_TEP_NOP, 0, "" } /* z */ @@ -435,7 +435,7 @@ e_text_event_processor_emacs_like_event (ETextEventProcessor *tep, ETextEventPro break; default: - if (key.state & GDK_CONTROL_MASK) { + if ((key.state & GDK_CONTROL_MASK) && !(key.state & GDK_MOD1_MASK)) { if ((key.keyval >= 'A') && (key.keyval <= 'Z')) key.keyval -= 'A' - 'a'; @@ -447,7 +447,7 @@ e_text_event_processor_emacs_like_event (ETextEventProcessor *tep, ETextEventPro command.string = control_keys[(int) (key.keyval - 'a')].string; } - if (key.keyval == 'x' || key.keyval == 'w') { + if (key.keyval == 'x') { command.action = E_TEP_COPY; command.position = E_TEP_SELECTION; gtk_signal_emit_by_name (GTK_OBJECT (tep), "command", &command); @@ -457,7 +457,7 @@ e_text_event_processor_emacs_like_event (ETextEventProcessor *tep, ETextEventPro } break; - } else if (key.state & GDK_MOD1_MASK) { + } else if ((key.state & GDK_MOD1_MASK) && !(key.state & GDK_CONTROL_MASK)) { if ((key.keyval >= 'A') && (key.keyval <= 'Z')) key.keyval -= 'A' - 'a'; @@ -468,7 +468,7 @@ e_text_event_processor_emacs_like_event (ETextEventProcessor *tep, ETextEventPro command.value = alt_keys[(int) (key.keyval - 'a')].value; command.string = alt_keys[(int) (key.keyval - 'a')].string; } - } else if (key.length > 0) { + } else if (!(key.state & GDK_MOD1_MASK) && !(key.state & GDK_CONTROL_MASK) && key.length > 0) { if (key.keyval >= GDK_KP_0 && key.keyval <= GDK_KP_9) { key.keyval = '0'; key.string = "0"; |