]> git.eshelyaron.com Git - emacs.git/commitdiff
2002-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
authorMichael Kifer <kifer@cs.stonybrook.edu>
Sat, 12 Oct 2002 07:13:59 +0000 (07:13 +0000)
committerMichael Kifer <kifer@cs.stonybrook.edu>
Sat, 12 Oct 2002 07:13:59 +0000 (07:13 +0000)
* ediff-init.el (ediff-frame-char-height): use frame-selected-window.

* ediff-util.el (ediff-file-checked-in-p): changed progn with and

* ediff-wind.el (ediff-skip-unsuitable-frames): distinguish selected
frame from frame of selected window
(ediff-frame-has-dedicated-windows): don't select any frames to avoid
changing selected windows
(ediff-setup-control-frame): make sure auto-rase is properly set for
the control frame

lisp/ChangeLog
lisp/ediff-init.el
lisp/ediff-util.el
lisp/ediff-wind.el

index f2bf55ad6ede4f485b30aaf97ed68d8826ad232e..5bf234e6fa6905d794c2a32b3090fa12d8cf7154 100644 (file)
@@ -1,3 +1,16 @@
+2002-10-12  Michael Kifer  <kifer@cs.stonybrook.edu>
+       
+       * ediff-init.el (ediff-frame-char-height): use frame-selected-window.
+       
+       * ediff-util.el (ediff-file-checked-in-p): changed progn with and
+       
+       * ediff-wind.el (ediff-skip-unsuitable-frames): distinguish selected
+       frame from frame of selected window
+       (ediff-frame-has-dedicated-windows): don't select any frames to avoid
+       changing selected windows
+       (ediff-setup-control-frame): make sure auto-rase is properly set for
+       the control frame
+       
 2002-10-10  Simon Josefsson  <jas@extundo.com>
 
        * browse-url.el (browse-url-mozilla): Doc fix.
index 01c9b1e129af2ad1e1199214539a39bd699531ef..58a37e2566d0eec48bea85bec0f4340e0c8de613 100644 (file)
@@ -1550,7 +1550,7 @@ This default should work without changes."
 
 (defsubst ediff-frame-char-height (frame)
   (ediff-cond-compile-for-xemacs-or-emacs 
-   (glyph-height ediff-H-glyph (selected-window frame)) ; xemacs cse
+   (glyph-height ediff-H-glyph (frame-selected-window frame)) ; xemacs case
    (frame-char-height frame) ; emacs case
    )
   )
index 64d19c5ee698624bbf83a5d976de87c4e84f5b34..865f14a41c561d6166f1ed9df38d1a74fee073fb 100644 (file)
@@ -1137,9 +1137,9 @@ of the current buffer."
        ;; CVS files are considered not checked in
        (not (memq (vc-backend file) '(nil CVS)))
        (if (fboundp 'vc-state)
-          (progn
-            (not (memq (vc-state file) '(edited needs-merge)))
-            (not (stringp (vc-state file))))
+          (and
+           (not (memq (vc-state file) '(edited needs-merge)))
+           (not (stringp (vc-state file))))
         ;; XEmacs has no vc-state
         (not (vc-locking-user file)))
        ))
index ae65b1d6f51131ce31fd4afad0f04017eecf731e..723ae577767b049df3d944ec036425ac6637bbb9 100644 (file)
@@ -157,7 +157,7 @@ In this case, Ediff will use those frames to display these buffers."
    '(scrollbar-width . 0)         ; XEmacs only
    '(menu-bar-lines . 0)          ; Emacs only
    '(tool-bar-lines . 0)          ; Emacs 21+ only
-   ;; don't lower and auto-raise
+   ;; don't lower but auto-raise
    '(auto-lower . nil)
    '(auto-raise . t)
    '(visibility . nil)
@@ -821,7 +821,7 @@ into icons, regardless of the window manager."
       (setq ediff-window-A wind-A
            ediff-window-B wind-B
            ediff-window-C wind-C)
-      
+
       (setq frame-A (window-frame ediff-window-A)
            designated-minibuffer-frame
            (window-frame (minibuffer-window frame-A))))
@@ -840,44 +840,38 @@ into icons, regardless of the window manager."
 ;; create a new splittable frame if none is found
 (defun ediff-skip-unsuitable-frames (&optional ok-unsplittable)
   (if (ediff-window-display-p)
-      ;;(let (last-window)
-      (let (seen-windows)
-       ;; (memq ... seen-windows) has quadratic behavior,
-       ;; but (eq ... last-window) runs into an emacs bug where next-window
-       ;; gets stuck in a loop if the only frame is the minibuffer.
-       ;;
-       ;;(while (and (not (eq (selected-window) last-window))
+      (let ((wind-frame (window-frame (selected-window)))
+            seen-windows)
        (while (and (not (memq (selected-window) seen-windows))
                    (or
-                    (ediff-frame-has-dedicated-windows (selected-frame))
-                    (ediff-frame-iconified-p (selected-frame))
+                    (ediff-frame-has-dedicated-windows wind-frame)
+                    (ediff-frame-iconified-p wind-frame)
                     ;; skip small windows
-                    (< (frame-height (selected-frame))
+                    (< (frame-height wind-frame)
                        (* 3 window-min-height))
                     (if ok-unsplittable
                         nil
-                      (ediff-frame-unsplittable-p (selected-frame)))))
-         ;; remember where started
-         ;;(or last-window (setq last-window (selected-window)))
+                      (ediff-frame-unsplittable-p wind-frame))))
+         ;; remember history
          (setq seen-windows (cons (selected-window) seen-windows))
          ;; try new window
-         (other-window 1 t))
-       ;;(if (eq (selected-window) last-window)
+         (other-window 1 t)
+         (setq wind-frame (window-frame (selected-window)))
+         )
        (if (memq (selected-window) seen-windows)
-           ;; fed up, no appropriate frame
-           (progn
-             (select-frame (make-frame '((unsplittable)))))))))
+           ;; fed up, no appropriate frames
+           (setq wind-frame (make-frame '((unsplittable)))))
+
+       (select-frame wind-frame)
+       )))
 
 (defun ediff-frame-has-dedicated-windows (frame)
-  (let ((cur-fr (selected-frame))
-       ans)
-    (select-frame frame)
+  (let (ans)
     (walk-windows 
      (lambda (wind) (if (window-dedicated-p wind)
                        (setq ans t)))
      'ignore-minibuffer
      frame)
-    (select-frame cur-fr)
     ans))
 
 ;; window is ok, if it is only one window on the frame, not counting the
@@ -961,9 +955,13 @@ into icons, regardless of the window manager."
           (cons 'width fwidth)
           (cons 'height fheight))
          )
-    (if ediff-use-long-help-message
-       (setq adjusted-parameters
-             (cons '(auto-raise . nil) adjusted-parameters)))
+
+    ;; adjust autoraise
+    (setq adjusted-parameters
+         (cons (if ediff-use-long-help-message
+                   '(auto-raise . nil)
+                 '(auto-raise . t))
+               adjusted-parameters))
     
     ;; In XEmacs, buffer menubar needs to be killed before frame parameters
     ;; are changed.