aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar David Aspinall <da@inf.ed.ac.uk>2004-04-18 10:38:10 +0000
committerGravatar David Aspinall <da@inf.ed.ac.uk>2004-04-18 10:38:10 +0000
commit24bbdcd038c41e1defc3635975bf39d7ed8b414f (patch)
treee43e98fa50f9fc69db3d7646847b64d66c4ac31f
parentd285896914fff3ff5b421440ffd28b612f6cb930 (diff)
Try to stop proof-delete-other-frames from bringing up new
frames only to delete them.
-rw-r--r--generic/pg-response.el21
1 files changed, 18 insertions, 3 deletions
diff --git a/generic/pg-response.el b/generic/pg-response.el
index 1686e793..88cf9c71 100644
--- a/generic/pg-response.el
+++ b/generic/pg-response.el
@@ -57,6 +57,14 @@
;; -- three window mode
;;
+;; FIXME: 3.5: things are better than before but still quite bad.
+;; To really do this well I think we simply have to write specialised
+;; frame handling code --- and do it twice, once for each Emacs.
+;;
+;; Choice comment from XEmacs frame.el before special-display-popup-frame:
+;; "#### Change, not compatible with FSF: This stuff is all so incredibly
+;; junky anyway that I doubt it makes any difference."
+
(defvar proof-shell-special-display-regexp nil
"Regexp for special-display-regexps for multiple frame use.
Internal variable, setting this will have no effect!")
@@ -193,10 +201,17 @@ This uses a canonical layout."
;; We may lose with just selected window
(selected-window)))))
(proof-map-buffers (proof-associated-buffers)
- (let ((fm (window-frame
- (proof-get-window-for-buffer (current-buffer)))))
+ (let* ((win
+ ;; NB: g-w-f-b will re-display in new frame if
+ ;; the buffer isn't selected/visible. This causes
+ ;; new frame to flash up and be deleted if already
+ ;; deleted!
+ ;; (proof-get-window-for-buffer (current-buffer))
+ ;; This next choice is probably better:
+ (get-buffer-window (current-buffer) 'visible))
+ (fm (and win (window-frame win))))
(unless (equal mainframe fm)
- (delete-frame fm)))))))
+ (if fm (delete-frame fm))))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;