Blob Blame History Raw
--- libchewing-0.3.0/src/chewingio.c.orig	2007-04-20 17:05:06.000000000 +1000
+++ libchewing-0.3.0/src/chewingio.c	2007-04-20 17:01:46.000000000 +1000
@@ -567,7 +567,9 @@
 {
 	ChewingData *pgdata = ctx->data;
 	ChewingOutput *pgo = ctx->output;
-	int keystrokeRtn = KEYSTROKE_ABSORB;
+	int toSelect = 0;
+ 	int keystrokeRtn = KEYSTROKE_ABSORB;
+	int key_buf_cursor;
 
 	CheckAndResetRange( pgdata );
 
@@ -575,8 +577,14 @@
 		keystrokeRtn = KEYSTROKE_IGNORE;
 	}
 
-	if ( pgdata->bSelect )
-		ChoicePrevAvail( pgdata );
+	key_buf_cursor = pgdata->chiSymbolCursor;
+	if ( pgdata->chiSymbolCursor == pgdata->chiSymbolBufLen )
+		key_buf_cursor--;
+
+        if ( ! pgdata->symbolKeyBuf[ key_buf_cursor ] ) {
+		/* Close Symbol Choice List */
+        	chewing_handle_Esc(ctx);
+	}
 
 	MakeOutputWithRtn( pgo, pgdata, keystrokeRtn );
 	return 0;