From 5e0855925629694936a0f73936defa20a1758172 Mon Sep 17 00:00:00 2001 From: Pierre Courtieu Date: Mon, 22 Dec 2014 15:29:11 +0000 Subject: Fixing a bug of multiple frame mode (obsolete variable in emacs > 23.4. --- generic/pg-response.el | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) (limited to 'generic/pg-response.el') diff --git a/generic/pg-response.el b/generic/pg-response.el index 7afa77a5..009c6492 100644 --- a/generic/pg-response.el +++ b/generic/pg-response.el @@ -84,7 +84,8 @@ ;; (defvar pg-response-special-display-regexp nil - "Regexp for `special-display-regexps' for multiple frame use. + "Regexp for `special-display-regexps' (now display-buffer-alist) +for multiple frame use. Internal variable, setting this will have no effect!") (defconst proof-multiframe-parameters @@ -97,14 +98,33 @@ Internal variable, setting this will have no effect!") "List of GNU Emacs frame parameters for secondary frames.") (defun proof-multiple-frames-enable () + ; special-display-regexps is obsolete, let us let it for a while and + ; remove it later (unless (eval-when-compile (boundp 'display-buffer-alist)) (let ((spdres (cons - pg-response-special-display-regexp - proof-multiframe-parameters))) + pg-response-special-display-regexp + proof-multiframe-parameters))) (if proof-multiple-frames-enable - (add-to-list 'special-display-regexps spdres) - (setq special-display-regexps - (delete spdres special-display-regexps))))) + (add-to-list 'special-display-regexps spdres) + (setq special-display-regexps + (delete spdres special-display-regexps))))) + ; This is the current way to do it + (when (eval-when-compile (boundp 'display-buffer-alist)) + (let + ((display-buffer-entry + (cons pg-response-special-display-regexp + `((display-buffer-reuse-window display-buffer-pop-up-frame) . + ((reusable-frames . nil) + (pop-up-frame-parameters + . + ,proof-multiframe-parameters)))))) + (if proof-multiple-frames-enable + (add-to-list + 'display-buffer-alist + display-buffer-entry) + ;(add-to-list 'display-buffer-alist (proof-buffer-dislay)) + (setq display-buffer-alist + (delete display-buffer-entry display-buffer-alist))))) (proof-layout-windows)) (defun proof-three-window-enable () @@ -126,7 +146,6 @@ Following POLICY, which can be one of 'smart, 'horizontal, (setq pol 'hybrid)) (t (setq pol 'vertical))) (setq pol policy)) - (message "policy = %S , pol = %S" policy pol) (save-selected-window (cond ((eq pol 'hybrid) -- cgit v1.2.3