From f0a5cb8020b9689774ce420aa24a66b54dd4d4b5 Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Tue, 22 Jun 2010 15:08:19 +0800 Subject: [PATCH] add enter key press handle. --- src/ExtEditor.cc | 18 ++++++++++++++++++ src/ExtEditor.h | 1 + 2 files changed, 19 insertions(+) diff --git a/src/ExtEditor.cc b/src/ExtEditor.cc index 28ea59a..305c8c1 100644 --- a/src/ExtEditor.cc +++ b/src/ExtEditor.cc @@ -98,6 +98,9 @@ ExtEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers) if (processSpace (keyval)) return TRUE; + if (processEnter (keyval)) + return TRUE; + m_cursor = std::min (m_cursor, (guint)m_text.length ()); /* Remember the input string. */ @@ -272,6 +275,21 @@ ExtEditor::processSpace (guint keyval) return TRUE; } +gboolean +ExtEditor::processEnter(guint keyval) +{ + if ( !(keyval == IBUS_KP_Enter ) ) + return FALSE; + + if ( m_text.length() == 0 ) + return FALSE; + + Text text(m_text); + commitText(text); + reset(); + return TRUE; +} + void ExtEditor::pageUp (void) { diff --git a/src/ExtEditor.h b/src/ExtEditor.h index 9ff1975..26bedb3 100644 --- a/src/ExtEditor.h +++ b/src/ExtEditor.h @@ -67,6 +67,7 @@ private: gboolean processLabelKey (guint keyval); gboolean processSpace (guint keyval); + gboolean processEnter (guint keyval); gboolean removeCharBefore (void); gboolean removeCharAfter (void); -- 2.7.4