From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#32825: 27.0.50; Deterministic window management Date: Tue, 04 Dec 2018 09:32:37 +0100 Message-ID: <5C063BA5.8080603@gmx.at> References: <874leeaiah.fsf@mail.linkov.net> <5BA9E3B1.9010700@gmx.at> <87bm8lzrfb.fsf@web.de> <5BAA76CF.8010808@gmx.at> <878t3nublx.fsf@mail.linkov.net> <87wor7uqgb.fsf@web.de> <87o9bhkeih.fsf@mail.linkov.net> <87h8h9hk4w.fsf@web.de> <87d0rvb7xg.fsf@mail.linkov.net> <87sh0rkucr.fsf@web.de> <87d0rvqf5r.fsf@mail.linkov.net> <87k1m3krvm.fsf@web.de> <87o9bf13b4.fsf@mail.linkov.net> <87d0rvkq01.fsf@web.de> <5BD57C2B.7020109@gmx.at> <87tvl3rvks.fsf@mail.linkov.net> <5BD96392.3040008@gmx.at> <87y3adakkh.fsf@mail.linkov.net> <5BDAC0ED.9030405@gmx.at> <87h8h0juwn.fsf@mail.linkov.net> <5BDC0E38.5020901@gmx.at> <87bm62p5ea.fsf@mail.linkov.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1543912274 12137 195.159.176.226 (4 Dec 2018 08:31:14 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 4 Dec 2018 08:31:14 +0000 (UTC) Cc: Michael Heerdegen , 32825@debbugs.gnu.org To: Juri Linkov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Dec 04 09:31:10 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gU66n-00033h-QS for geb-bug-gnu-emacs@m.gmane.org; Tue, 04 Dec 2018 09:31:10 +0100 Original-Received: from localhost ([::1]:54565 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gU68u-00046R-GV for geb-bug-gnu-emacs@m.gmane.org; Tue, 04 Dec 2018 03:33:20 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38680) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gU68f-00043B-FM for bug-gnu-emacs@gnu.org; Tue, 04 Dec 2018 03:33:11 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gU68c-0005FZ-AR for bug-gnu-emacs@gnu.org; Tue, 04 Dec 2018 03:33:05 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:55501) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gU68c-0005FU-60 for bug-gnu-emacs@gnu.org; Tue, 04 Dec 2018 03:33:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gU68c-00046A-2Z for bug-gnu-emacs@gnu.org; Tue, 04 Dec 2018 03:33:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 04 Dec 2018 08:33:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 32825 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 32825-submit@debbugs.gnu.org id=B32825.154391237515736 (code B ref 32825); Tue, 04 Dec 2018 08:33:02 +0000 Original-Received: (at 32825) by debbugs.gnu.org; 4 Dec 2018 08:32:55 +0000 Original-Received: from localhost ([127.0.0.1]:59759 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gU68U-00045k-R9 for submit@debbugs.gnu.org; Tue, 04 Dec 2018 03:32:55 -0500 Original-Received: from mout.gmx.net ([212.227.15.19]:35643) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gU68T-00045U-48 for 32825@debbugs.gnu.org; Tue, 04 Dec 2018 03:32:53 -0500 Original-Received: from [192.168.1.101] ([213.162.73.140]) by mail.gmx.com (mrgmx002 [212.227.17.190]) with ESMTPSA (Nemesis) id 0Lx83d-1haiHK3T6f-016g58; Tue, 04 Dec 2018 09:32:43 +0100 In-Reply-To: <87bm62p5ea.fsf@mail.linkov.net> X-Provags-ID: V03:K1:TuUD1nGRw7IZwGDm4h6szWDsb5jgUd4YF+uz+hHIWESswtQcOo4 7YhJCr8gPVqGz1YMgFJstzDXT8FdXmhzriC4sd+m7CxjxcouY4JDbZeS5uon2APsoUcNMYq jkM7TZADr4ZCzqxttSAiEEmvs2zmlLohfo7nWi7fZmULmTG8aPOFJ1bFACQLDSSppTSArfE Bm1zrcZi9AHJQQs0foLHw== X-UI-Out-Filterresults: notjunk:1;V03:K0:UQA+9x+K4Wk=:m/IkPwDS5wtP8K6hNRBNx/ Tc6FHA2uPMABBgNZg0MrqynUBdsVeky1uzowaYmvO3YJAP6paQ7WNJuravB4r+rEMrShqhrZz 10YADhX92avHLPsRWHCe30CKfIKf2KEv4AjrYuTKHTiN7HuypbNhXgxar9u1tpagDvqgdg2+g wvWmHIiSQ5ATvv7rr6oO8WY615NJpsoPYCLy9okrKoWWMMjdxhT9dli2V5pcfFv2MyS5Wop3H YJSTr6wgezLZuBDubGccOSbzW6FpL9D+UVZV6W3DJFAIIp14qFiTaerhLzVjIWTD7ygPqPbZp JNKanBehigTWfcPOhhExc/eELOfvNia5IU6itByYIzOIoX32IeOc47Q3JANiWo8QwFUGZVNPi rH3kQyUwqbwlRYS2a3QBR2uM+R2sroBLDzKvb8Mgf1o3fs4cSksuuG/ZlIQ07DNgULqQaIuBF /YLCntKoVj/wXVtU14U/BwaNyscRmWorK74rfYI56CJInXoiO49NUbI+nrbKN0F6KlhJ21VPu kyfszYL/x13LOygxQb2Ima0iNfGpIgr7/OSpy8j+tp5WuXnurF6rC3ikCvIcZlGRh34ZwpZEJ bUkvQMPP+aLjLH8p4mwvzZBm3WDB6DX7hf2JofRiaObp4hIFuSaS0xPw5Ziwk16k2JYC0YhKH Zy1arC4MeUiied2odeHiigOsjvp4afp9oqf6x2CUtTvsgDR914ar0FRNctUaFOM3Pep6PtScs 7q4cWfh/cXhyJaTrpxpO0bhIC4DAME6CwMuiPtFfUiV+FC6MXsGa7bqVpIJW7Q2KWVXDL+YY X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:153058 Archived-At: > Another reason why this urgently needs to be fixed using > 'display-buffer-below-selected' with 'window-height' is that > for example visiting a gpg file that fails to decrypt displays > the *Backtrace* buffer with (file-error "Opening input file" "Can't decrypt" > in another window that hides another essential buffer *Error* > (with explanation of the error raised while decrypting) > displayed in the same window. But using 'display-buffer-below-selected' > both essential buffers will be displayed in separate windows. So what should we do? I earlier proposed a 'min-height' entry like in the code below. Would that suffice? If so, would we use the same for 'display-buffer-pop-up-window' and 'display-buffer-at-bottom'? Should we check the window below (if we "use" but do not "reuse" it) if it's high enough? I think we should provide exact semantics for any such 'min-height' entry so we can easily tell which action functions should check it. (defun display-buffer-below-selected (buffer alist) "Try displaying BUFFER in a window below the selected window. If there is a window below the selected one and that window already displays BUFFER, use that window. Otherwise, try to create a new window below the selected one and show BUFFER there. If that attempt fails as well and there is a non-dedicated window below the selected one, use that window." (let ((min-height (cdr (assq 'min-height alist))) window) (or (and (setq window (window-in-direction 'below)) (eq buffer (window-buffer window)) (window--display-buffer buffer window 'reuse alist)) (and (not (frame-parameter nil 'unsplittable)) (or (not (numberp min-height)) (window-sizable-p nil (- min-height))) (let ((split-height-threshold 0) split-width-threshold) (setq window (window--try-to-split-window (selected-window) alist))) (window--display-buffer buffer window 'window alist display-buffer-mark-dedicated)) (and (setq window (window-in-direction 'below)) (not (window-dedicated-p window)) (window--display-buffer buffer window 'reuse alist display-buffer-mark-dedicated))))) martin