Index: /trunk/source/cocoa-ide/cocoa-editor.lisp
===================================================================
--- /trunk/source/cocoa-ide/cocoa-editor.lisp	(revision 14362)
+++ /trunk/source/cocoa-ide/cocoa-editor.lisp	(revision 14363)
@@ -570,5 +570,5 @@
 ;;; This runs on the main thread; it synchronizes the "real" NSMutableAttributedString
 ;;; with the hemlock string and informs the textstorage of the insertion.
-(objc:defmethod (#/noteHemlockInsertionAtPosition:length: :void) ((self hemlock-text-storage)
+(objc:defmethod (#/noteHemlockInsertionAtPosition:length:extra: :void) ((self hemlock-text-storage)
                                                                   (pos :<NSI>nteger)
                                                                   (n :<NSI>nteger)
@@ -601,8 +601,8 @@
     (textstorage-note-insertion-at-position self pos n)))
 
-(objc:defmethod (#/noteHemlockDeletionAtPosition:length: :void) ((self hemlock-text-storage)
-                                                                 (pos :<NSI>nteger)
-                                                                 (n :<NSI>nteger)
-                                                                 (extra :<NSI>nteger))
+(objc:defmethod (#/noteHemlockDeletionAtPosition:length:extra: :void) ((self hemlock-text-storage)
+                                                                       (pos :<NSI>nteger)
+                                                                       (n :<NSI>nteger)
+                                                                       (extra :<NSI>nteger))
   (declare (ignorable extra))
   #+debug
@@ -628,8 +628,8 @@
       (update-line-cache-for-index display pos))))
 
-(objc:defmethod (#/noteHemlockModificationAtPosition:length: :void) ((self hemlock-text-storage)
-                                                                     (pos :<NSI>nteger)
-                                                                     (n :<NSI>nteger)
-                                                                     (extra :<NSI>nteger))
+(objc:defmethod (#/noteHemlockModificationAtPosition:length:extra: :void) ((self hemlock-text-storage)
+                                                                           (pos :<NSI>nteger)
+                                                                           (n :<NSI>nteger)
+                                                                           (extra :<NSI>nteger))
   (declare (ignorable extra))
   #+debug
@@ -650,8 +650,8 @@
 	 pos n deleted-string)))))
 
-(objc:defmethod (#/noteHemlockAttrChangeAtPosition:length: :void) ((self hemlock-text-storage)
-                                                                   (pos :<NSI>nteger)
-                                                                   (n :<NSI>nteger)
-                                                                   (fontnum :<NSI>nteger))
+(objc:defmethod (#/noteHemlockAttrChangeAtPosition:length:fontNum: :void) ((self hemlock-text-storage)
+                                                                           (pos :<NSI>nteger)
+                                                                           (n :<NSI>nteger)
+                                                                           (fontnum :<NSI>nteger))
   (ns:with-ns-range (range pos n)
     (#/setAttributes:range: (#/mirror self) (#/objectAtIndex: (#/styles self) fontnum) range)
@@ -665,5 +665,5 @@
                                                      (#/instanceMethodSignatureForSelector:
                                                       hemlock-text-storage
-                                            (@selector #/noteHemlockInsertionAtPosition:length:))))))
+                                            (@selector #/noteHemlockInsertionAtPosition:length:extra:))))))
 
 (defstatic *buffer-change-invocation-lock* (make-lock))
@@ -2387,9 +2387,14 @@
            (pos (hi:mark-absolute-position (hi::region-start region)))
            (n (- (hi:mark-absolute-position (hi::region-end region)) pos)))
-      (perform-edit-change-notification textstorage
-                                        (@selector #/noteHemlockAttrChangeAtPosition:length:)
-                                        pos
-                                        n
-                                        font))))
+      (if (eq *current-process* *cocoa-event-process*)
+        (#/noteHemlockAttrChangeAtPosition:length:fontNum: textstorage
+                                                           pos
+                                                           n
+                                                           font)
+        (perform-edit-change-notification textstorage
+                                          (@selector #/noteHemlockAttrChangeAtPosition:length:fontNum:)
+                                          pos
+                                          n
+                                          font)))))
 
 (defun buffer-active-font-attributes (buffer)
@@ -2415,8 +2420,13 @@
 	    ;; For :right-inserting and :temporary marks, they should be left back.
             (decf pos n))
-          (perform-edit-change-notification textstorage
-                                            (@selector #/noteHemlockInsertionAtPosition:length:)
-                                            pos
-                                            n))))))
+          (if (eq *current-process* *cocoa-event-process*)
+            (#/noteHemlockInsertionAtPosition:length:extra: textstorage
+                                                            pos
+                                                            n
+                                                            0)
+            (perform-edit-change-notification textstorage
+                                              (@selector #/noteHemlockInsertionAtPosition:length:extra:)
+                                              pos
+                                              n)))))))
 
 (defun hemlock-ext:buffer-note-modification (buffer mark n)
@@ -2425,8 +2435,13 @@
 	   (textstorage (if document (slot-value document 'textstorage))))
       (when textstorage
-            (perform-edit-change-notification textstorage
-                                              (@selector #/noteHemlockModificationAtPosition:length:)
-                                              (hi:mark-absolute-position mark)
-                                              n)))))
+        (if (eq *current-process* *cocoa-event-process*)
+          (#/noteHemlockModificationAtPosition:length:extra: textstorage
+                                                             (hi:mark-absolute-position mark)
+                                                             n
+                                                             0)
+          (perform-edit-change-notification textstorage
+                                            (@selector #/noteHemlockModificationAtPosition:length:extra:)
+                                            (hi:mark-absolute-position mark)
+                                            n))))))
   
 
@@ -2437,8 +2452,13 @@
       (when textstorage
         (let* ((pos (hi:mark-absolute-position mark)))
-          (perform-edit-change-notification textstorage
-                                            (@selector #/noteHemlockDeletionAtPosition:length:)
-                                            pos
-                                            (abs n)))))))
+          (if (eq *current-process* *cocoa-event-process*)
+            (#/noteHemlockDeletionAtPosition:length:extra: textstorage
+                                                           pos
+                                                           (abs n)
+                                                           0)
+            (perform-edit-change-notification textstorage
+                                              (@selector #/noteHemlockDeletionAtPosition:length:extra:)
+                                              pos
+                                              (abs n))))))))
 
 
