Revision: 6649
Author: deton.kih
Date: Sat Jul 31 18:03:09 2010
Log: * Change to be able to purge mazegaki entry which is only one candidate.
* scm/tutcode.scm
  - (tutcode-begin-conversion): Add arguments.
  - (tutcode-proc-state-yomi): Add check of tutcode-purge-candidate-key?
    Follow the argument change of tutcode-begin-conversion.

http://code.google.com/p/uim/source/detail?r=6649

Modified:
 /trunk/scm/tutcode.scm

=======================================
--- /trunk/scm/tutcode.scm      Fri Jul 30 16:32:08 2010
+++ /trunk/scm/tutcode.scm      Sat Jul 31 18:03:09 2010
@@ -709,7 +709,9 @@

 ;;; ¸ò¤¼½ñ¤­¼­½ñ¤Î¸¡º÷¤ò¹Ô¤¦¡£
 ;;; @param pc ¥³¥ó¥Æ¥­¥¹¥È¥ê¥¹¥È
-(define (tutcode-begin-conversion pc)
+;;; @param autocommit? ¸õÊ䤬1¸Ä¤Î¾ì¹ç¤Ë¼«Æ°Åª¤Ë³ÎÄꤹ¤ë¤«¤É¤¦¤«
+;;; @param recursive-learning? ¸õÊ䤬̵¤¤¾ì¹ç¤ËºÆµ¢ÅÐÏ¿¥â¡¼¥É¤ËÆþ¤ë¤«¤É¤¦¤«
+(define (tutcode-begin-conversion pc autocommit? recursive-learning?)
   (let* ((yomi (tutcode-make-string (tutcode-context-head pc)))
          (res (and (symbol-bound? 'skk-lib-get-entry)
                    (skk-lib-get-entry yomi "" "" #f))))
@@ -719,7 +721,7 @@
         (tutcode-context-set-nr-candidates! pc
          (skk-lib-get-nr-candidates yomi "" "" #f))
         (tutcode-context-set-state! pc 'tutcode-state-converting)
-        (if (= (tutcode-context-nr-candidates pc) 1)
+        (if (and autocommit? (= (tutcode-context-nr-candidates pc) 1))
           ;; ¸õÊ䤬1¸Ä¤·¤«¤Ê¤¤¾ì¹ç¤Ï¼«Æ°Åª¤Ë³ÎÄꤹ¤ë¡£
;; (¼­½ñÅÐÏ¿¤Ïtutcode-register-candidate-key¤ò²¡¤·¤ÆÌÀ¼¨Åª¤Ë³«»Ï¤¹¤ë)
           (tutcode-commit-with-auto-help pc)
@@ -729,12 +731,12 @@
                      'tutcode-candidate-window-converting)
               (im-select-candidate pc 0)))))
       ;; ¸õÊä̵¤·
-      (if tutcode-use-recursive-learning?
+      (if recursive-learning?
         (begin
           (tutcode-context-set-state! pc 'tutcode-state-converting)
-          (tutcode-setup-child-context pc 'tutcode-child-type-editor)
-          ;(tutcode-flush pc) ; flush¤¹¤ë¤ÈÆþÎϤ·¤¿Ê¸»úÎ󤬾䨤Ƥ¬¤Ã¤«¤ê
-        )))))
+          (tutcode-setup-child-context pc 'tutcode-child-type-editor)))
+        ;(tutcode-flush pc) ; flush¤¹¤ë¤ÈÆþÎϤ·¤¿Ê¸»úÎ󤬾䨤Ƥ¬¤Ã¤«¤ê
+        )))

 ;;; »Ò¥³¥ó¥Æ¥­¥¹¥È¤òºîÀ®¤¹¤ë¡£
 ;;; @param type 'tutcode-child-type-editor¤«'tutcode-child-type-dialog
@@ -1246,6 +1248,14 @@
        (tutcode-flush pc))
       ((tutcode-stroke-help-toggle-key? key key-state)
        (tutcode-toggle-stroke-help pc))
+ ;; ¸õÊä¿ô¤¬1¸Ä¤Î¾ì¹ç¡¢ÊÑ´¹¸å¼«Æ°³ÎÄꤵ¤ì¤Æconverting¥â¡¼¥É¤ËÆþ¤é¤Ê¤¤¤Î¤Ç
+      ;; ¤½¤Î¾ì¹ç¤Ç¤âpurge¤Ç¤­¤ë¤è¤¦¤Ë¡¢¤³¤³¤Ç¥Á¥§¥Ã¥¯
+      ((and (tutcode-purge-candidate-key? key key-state)
+            (not (null? (tutcode-context-head pc))))
+       ;; converting¥â¡¼¥É¤Ë°Ü¹Ô¤·¤Æ¤«¤épurge
+       (tutcode-begin-conversion pc #f #f)
+       (if (eq? (tutcode-context-state pc) 'tutcode-state-converting)
+         (tutcode-proc-state-converting pc key key-state)))
       ((and (tutcode-register-candidate-key? key key-state)
             tutcode-use-recursive-learning?)
        (tutcode-context-set-state! pc 'tutcode-state-converting)
@@ -1259,7 +1269,7 @@
        ;; <Control>nÅù¤Ç¤ÎÊÑ´¹³«»Ï?
        (if (tutcode-begin-conv-key? key key-state)
          (if (not (null? (tutcode-context-head pc)))
-           (tutcode-begin-conversion pc)
+           (tutcode-begin-conversion pc #t tutcode-use-recursive-learning?)
            (tutcode-flush pc))
          (begin
            (tutcode-flush pc)
@@ -1274,7 +1284,7 @@
          ;;  space¤ÇÊÑ´¹³«»Ï¤Ï¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢<Control>nÅù¤ò»È¤¦É¬Íפ¢¤ê)
          (if (tutcode-begin-conv-key? key key-state)
            (if (not (null? (tutcode-context-head pc)))
-             (tutcode-begin-conversion pc)
+ (tutcode-begin-conversion pc #t tutcode-use-recursive-learning?)
              (tutcode-flush pc))
            (set! res (charcode->string key)))))
       ((tutcode-context-latin-conv pc)

Reply via email to