Sync up with egg-980404.
[elisp/egg.git] / its.el
diff --git a/its.el b/its.el
index d55f755..4aff32b 100644 (file)
--- a/its.el
+++ b/its.el
                                 'read-only t
                                 'intangible 'its-part-1))
       (if its-fence-face
-         (put-text-property p (point) 'face (its-get-fence-face)))
+         (egg-set-face p (point) (its-get-fence-face)))
       (its-set-cursor-status cursor))))
 
 (defun its-buffer-delete-SYL (syl)
@@ -936,7 +936,7 @@ Return last state."
       (put-text-property p (point) 'its-syl (cons syl syl))
       (if its-fence-face
          (let ((its-current-language (get-text-property p 'egg-lang)))
-           (put-text-property p (point) 'face (its-get-fence-face)))))
+           (egg-set-face p (point) (its-get-fence-face)))))
     (if yank-before
        (add-text-properties start end '(read-only t intangible its-part-1))
       (add-text-properties start end '(read-only t intangible its-part-2))
@@ -956,15 +956,10 @@ Return last state."
   "Exit ITS mode."
   (interactive)
   (let ((inhibit-read-only t))
+    (its-input-end)
+    (its-put-cursor t)
     (its-exit-mode-internal)))
 
-(defun its-exit-mode-off-input-method ()
-  "Exit ITS mode."
-  (interactive)
-  (let ((inhibit-read-only t))
-    (its-exit-mode-internal)
-    (inactivate-input-method)))
-
 ;; TODO: handle overwrite-mode, insertion-hook, fill...
 (defun its-exit-mode-internal (&optional proceed-to-conversion)
   (let (start end s e)
@@ -993,6 +988,8 @@ Return last state."
 (defun its-kick-convert-region ()
   (interactive)
   (let ((inhibit-read-only t))
+    (its-input-end)
+    (its-put-cursor t)
     (its-exit-mode-internal t)))
 
 (defun its-kick-convert-region-or-self-insert ()