diff lisp/window.el @ 1279:cd0abfdb9e9d

[xemacs-hg @ 2003-02-09 09:33:42 by ben] walk-windows, redisplay fixes console-stream.c: Abort when any attempts to output a stream console are made. Should be caught sooner. event-msw.c: Don't redisplay() during sizing when the frame has not yet been initialized completely. event-stream.c, menubar-msw.c, menubar-x.c, menubar.c, menubar.h: Restore in_menu_callback. Bind it in menubar-{msw,x}.c when calling filter functions and the like. Conditionalize on it, not in_modal_loop, when issuing error in `next-event', otherwise we bite the dust immediately -- event-msw.c purposely calls Fnext_event() in a modal loop, and knows what it's doing. redisplay-output.c: Formatting fixes. redisplay.c, window.c, winslots.h: Delete lots of carcasses of attempts to add redisplay support for font-lock -- `pre/post-redisplay-hook', unimplemented junk from FSF (redisplay-end-trigger, `window-scroll-functions', `window-size-change-functions'). If we want to port some redisplay support from FSF, port the `fontified' property. redisplay.c: Put in a check here (as well as redisplay_device()) for a stream frame. We can get here directly through Lisp fun `redisplay-frame'. Abort if frame not initialized. redisplay.c: Check for stream frames/devices. window.el: walk-windows was broken when a frame was given to WHICH-FRAMES. it would loop forever. The FSF version fixes this but i didn't sync to them because (a) it conses (bad for lazy-lock), (b) it calls select-window.
author ben
date Sun, 09 Feb 2003 09:33:48 +0000
parents 960da99ad52b
children bd28481bb0e1
line wrap: on
line diff
--- a/lisp/window.el	Sun Feb 09 07:03:07 2003 +0000
+++ b/lisp/window.el	Sun Feb 09 09:33:48 2003 +0000
@@ -96,19 +96,23 @@
 If `window-system', search all devices on window-system consoles.
 Any other non-nil value means search all devices."
   ;; If we start from the minibuffer window, don't fail to come back to it.
-  (if (window-minibuffer-p (selected-window))
-      (setq minibuf t))
-  ;; Note that, like next-window & previous-window, this behaves a little
-  ;; strangely if the selected window is on an invisible frame: it hits
-  ;; some of the windows on that frame, and all windows on visible frames.
-  (let* ((walk-windows-start (selected-window))
-	 (walk-windows-current walk-windows-start))
-    (while (progn
-	     (setq walk-windows-current
-		   (next-window walk-windows-current minibuf which-frames
-				which-devices))
-	     (funcall function walk-windows-current)
-	     (not (eq walk-windows-current walk-windows-start))))))
+  (let ((arg (cond
+	      ((framep which-frames) which-frames)
+	      ((devicep which-devices) which-devices)
+	      (t nil))))
+    (if (window-minibuffer-p (selected-window arg))
+	(setq minibuf t))
+    ;; Note that, like next-window & previous-window, this behaves a little
+    ;; strangely if the selected window is on an invisible frame: it hits
+    ;; some of the windows on that frame, and all windows on visible frames.
+    (let* ((walk-windows-start (selected-window arg))
+	   (walk-windows-current walk-windows-start))
+      (while (progn
+	       (setq walk-windows-current
+		     (next-window walk-windows-current minibuf which-frames
+				  which-devices))
+	       (funcall function walk-windows-current)
+	       (not (eq walk-windows-current walk-windows-start)))))))
 ;; The old XEmacs definition of the above clause.  It's more correct in
 ;; that it will never hit a window that's already been hit even if you
 ;; do something odd like `delete-other-windows', but has the problem