diff options
author | David Aspinall <da@inf.ed.ac.uk> | 2004-04-18 10:38:10 +0000 |
---|---|---|
committer | David Aspinall <da@inf.ed.ac.uk> | 2004-04-18 10:38:10 +0000 |
commit | 24bbdcd038c41e1defc3635975bf39d7ed8b414f (patch) | |
tree | e43e98fa50f9fc69db3d7646847b64d66c4ac31f | |
parent | d285896914fff3ff5b421440ffd28b612f6cb930 (diff) |
Try to stop proof-delete-other-frames from bringing up new
frames only to delete them.
-rw-r--r-- | generic/pg-response.el | 21 |
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)))))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; |