egg-980315.
[elisp/egg.git] / egg.el
diff --git a/egg.el b/egg.el
index c8403a0..a88bcf2 100644 (file)
--- a/egg.el
+++ b/egg.el
@@ -35,8 +35,6 @@
 (defvar egg-default-language "Japanese")
 (defvar egg-last-method-name)
 (make-variable-buffer-local 'egg-last-method-name)
-(defvar egg-mode-line-title)
-(make-variable-buffer-local 'egg-mode-line-title)
 
 ;;;###autoload
 (defun egg-mode (&rest arg)
          (egg-exit-conversion)))
        (setq describe-current-input-method-function nil)
        (setq current-input-method nil)
-       (let ((orig-local-map (keymap-parent (current-local-map))))
-         (use-local-map orig-local-map))
-       (run-hooks 'input-method-inactivate-hook))
+       (use-local-map (keymap-parent (current-local-map)))
+       (force-mode-line-update))
     ;; Turn on
     (if (null (string= (car arg) egg-last-method-name))
        (progn
          (funcall (nth 1 arg))
-        (setq egg-default-language its-current-language)))
+         (egg-set-conversion-backend nil (list its-current-language) t)
+         (setq egg-default-language its-current-language)))
     (setq egg-last-method-name (car arg))
     (use-local-map (if egg-mode-preference
                       (egg-modefull-map)
                     (egg-modeless-map)))
     (setq inactivate-current-input-method-function 'egg-mode)
     (setq describe-current-input-method-function 'egg-help)
-    (run-hooks 'input-method-activate-hook))
-  (force-mode-line-update))
-
-(defun egg-set-mode-line-title (title)
-  (setq egg-mode-line-title title)
-  (force-mode-line-update))
-
-(defun egg-check-language (lang)
-  (if (null (member lang egg-support-languages))
-      (error "%S is not supported" lang)))
+    (add-hook 'input-method-activate-hook 'its-set-mode-line-title)))
 
 (defun egg-modefull-map ()
   "Generate modefull keymap for EGG mode."  
@@ -87,6 +76,7 @@
     (while (< i 127)
       (define-key map (vector i) 'egg-self-insert-char)
       (setq i (1+ i)))
+    (its-define-select-keys map)
     (set-keymap-parent map (current-local-map))
     map))