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: Wed, 05 Dec 2018 19:55:53 +0100 Message-ID: <5C081F39.7040305@gmx.at> References: <874leeaiah.fsf@mail.linkov.net> <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> <5C063BA5.8080603@gmx.at> <87r2ex6icv.fsf@mail.linkov.net> <5C07974B.4060408@gmx.at> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------040108070406020107070303" X-Trace: blaine.gmane.org 1544036109 15181 195.159.176.226 (5 Dec 2018 18:55:09 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 5 Dec 2018 18:55:09 +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 Wed Dec 05 19:55:05 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 1gUcK7-0003nc-DH for geb-bug-gnu-emacs@m.gmane.org; Wed, 05 Dec 2018 19:55:03 +0100 Original-Received: from localhost ([::1]:36288 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gUcMD-0006jn-L3 for geb-bug-gnu-emacs@m.gmane.org; Wed, 05 Dec 2018 13:57:13 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46583) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gUcM6-0006jP-37 for bug-gnu-emacs@gnu.org; Wed, 05 Dec 2018 13:57:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gUcM2-0004fJ-6N for bug-gnu-emacs@gnu.org; Wed, 05 Dec 2018 13:57:06 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:58514) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gUcM2-0004fB-1A for bug-gnu-emacs@gnu.org; Wed, 05 Dec 2018 13:57:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gUcM1-0006Qq-Sn for bug-gnu-emacs@gnu.org; Wed, 05 Dec 2018 13:57:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 05 Dec 2018 18:57:01 +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.154403617424663 (code B ref 32825); Wed, 05 Dec 2018 18:57:01 +0000 Original-Received: (at 32825) by debbugs.gnu.org; 5 Dec 2018 18:56:14 +0000 Original-Received: from localhost ([127.0.0.1]:34539 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gUcLF-0006Pj-Lu for submit@debbugs.gnu.org; Wed, 05 Dec 2018 13:56:13 -0500 Original-Received: from mout.gmx.net ([212.227.17.21]:58789) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gUcLD-0006PW-R3 for 32825@debbugs.gnu.org; Wed, 05 Dec 2018 13:56:12 -0500 Original-Received: from [192.168.1.100] ([212.95.5.41]) by mail.gmx.com (mrgmx103 [212.227.17.168]) with ESMTPSA (Nemesis) id 0MhQju-1grDOt1QCA-00MeAK; Wed, 05 Dec 2018 19:56:01 +0100 In-Reply-To: <5C07974B.4060408@gmx.at> X-Provags-ID: V03:K1:6gDy6IZOLn+z4oG1l4HCMW0ygokx/NzYh4hkld12ZqL0y5bbc8/ XS8rjAx/zrbe/ikuZ61cRAtSLVe5VEByT8iwnMK6ULGCPu1vIQi3/EOlwPj/MXT47KYsFi3 lxEKzU1xnt11Uyf8s2VcMW7hdwW253UrtRS8RzlNjgcp4O1dcocMAiuL7S22Lt3vUSU8/QI sum+04N+aDh2SFDEmo4SQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:o/JTNzvYpQs=:QC0bHr/65kTDZycptC8T1E nErOFjXqlXhMO9ZYOyJKuWihqAofsVO2yK/y1bS9MS37K/FeinN3pIPoIRsqvSE/aAgpl6kB4 LxO2nzMlEmVHgNxJvdR6jMamlhEb7xNm30KQT+k5OENtlmGL9e+DUH00RQBWyZUd7wxehTynD NLzR31SZecfHLH4V+TsoYkP7VzIskHfxAXKVG118DTJTuc1pJsjteMMhSrZ9LKeixgy/1s/SE LRCybYuUG37klnJDEadB82pXVULlSbX+ArwdB1zV3ucdC4H8wubta+GdwRJigOQU4+yHaZ/N0 lWsaWrFAQpcoAvc9RusV78Nqlq1fKrp8JqtlH3tEN7PHPZvlOCiUSqSr761v87anBGrS+DHEa kxz9vw0DZJAi8Qe8UM/WzNMCwrfx1LE9OsbzuajuPMLlumRslK0b9UBVa0vFSUk4IDz++N2R1 N7u4nBKNY49wBkflHndu+g/kkA+bn2wqso8mwCre5/c0NqbvqAQTzoyNEz6PopN+6DNMTflmu bv+zGtpK49L/2lDMmBEZI5v/bck2Awm7inqIirYA31Mukz+bhgUVCQyhva/8wpMdyvOvGSrvO fdcbdWg8++LA7VYIR4JCNHapYbmzIJdRvyI8CXNMS3ylvUSkoZWHGnqT/ug4gV7ekfRyaLjr5 rNHoeekmjFCAE8Pm1Y1PfV/fpcTLMZv7iYXKKuH5IMfpeAS82JvvZOSXPPH99tAgWxwnZUdKV px37yAjXHKHnWjNE0nmfq/ca8Ry88JQsFiLQSbiIsiFLlyLrIBIprgZOZnTt7b9MGHZQRWa1 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:153126 Archived-At: This is a multi-part message in MIME format. --------------040108070406020107070303 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit > In the attached two functions I renamed it to 'window-min-height' to > make it more consistent with 'window-height'. Please have a look. Please do not have a look at that. It does things it shouldn't do; ignoring OT1H and messing up OTOH the 'quit-restore' parameter of the (re-)used window. Please try the now attached version of 'display-buffer-below-selected' instead. The idea is that when you call (display-buffer-below-selected BUFFER '((window-min-height . 40))) it makes sure that the window used has at least 40 lines or can be resized to 40 lines at least. To really make the window 40 lines tall you have to use 'window-height' too, like (display-buffer-below-selected BUFFER '((window-min-height . 40) (window-height . 40))) Obviously, 'window-height' may have a different value than 40 and 'display-buffer' will then try to use that value if it is allowed to do so. This means that (display-buffer-below-selected BUFFER '((window-min-height . 40) (window-height . 20))) may fail if the window can be made 20 lines tall but not 40. But if the window can be made 40 lines tall 'display-buffer-below-selected' will try to make it 20 lines tall. OTOH (display-buffer-below-selected BUFFER '((window-min-height . 40) (window-height . 60))) will fail only if no 40 line tall window can be found or made. If subsequent resizing to 60 lines fails, the window will stick to the preexisting height (which can be the result of a split). Is that all sufficiently comprehensible and coherent? martin --------------040108070406020107070303 Content-Type: application/emacs-lisp; name="display-buffer-below-selected.el" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="display-buffer-below-selected.el" KGRlZnVuIGRpc3BsYXktYnVmZmVyLWJlbG93LXNlbGVjdGVkIChidWZmZXIgYWxpc3QpCiAg IlRyeSBkaXNwbGF5aW5nIEJVRkZFUiBpbiBhIHdpbmRvdyBiZWxvdyB0aGUgc2VsZWN0ZWQg d2luZG93LgpJZiB0aGVyZSBpcyBhIHdpbmRvdyBiZWxvdyB0aGUgc2VsZWN0ZWQgb25lIGFu ZCB0aGF0IHdpbmRvdwphbHJlYWR5IGRpc3BsYXlzIEJVRkZFUiwgdXNlIHRoYXQgd2luZG93 LiAgT3RoZXJ3aXNlLCB0cnkgdG8KY3JlYXRlIGEgbmV3IHdpbmRvdyBiZWxvdyB0aGUgc2Vs ZWN0ZWQgb25lIGFuZCBzaG93IEJVRkZFUiB0aGVyZS4KSWYgdGhhdCBhdHRlbXB0IGZhaWxz IGFzIHdlbGwgYW5kIHRoZXJlIGlzIGEgbm9uLWRlZGljYXRlZCB3aW5kb3cKYmVsb3cgdGhl IHNlbGVjdGVkIG9uZSwgdXNlIHRoYXQgd2luZG93LgoKSWYgQUxJU1QgY29udGFpbnMgYSAn d2luZG93LW1pbi1oZWlnaHQnIGVudHJ5LCBlbnN1cmUgdGhhdCB0aGUKd2luZG93IHVzZWQg aXMgb3IgY2FuIGJlY29tZSBhdCBsZWFzdCBhcyBoaWdoIGFzIHByZXNjcmliZWQgYnkKdGhh dCBlbnRyeSdzIHZhbHVlLiIKICAobGV0ICgobWluLWhlaWdodCAoY2RyIChhc3NxICd3aW5k b3ctbWluLWhlaWdodCBhbGlzdCkpKQoJd2luZG93KQogICAgKG9yIChhbmQgKHNldHEgd2lu ZG93ICh3aW5kb3ctaW4tZGlyZWN0aW9uICdiZWxvdykpCiAgICAgICAgICAgICAoZXEgYnVm ZmVyICh3aW5kb3ctYnVmZmVyIHdpbmRvdykpCgkgICAgIChvciAobm90IChudW1iZXJwIG1p bi1oZWlnaHQpKQoJCSAoPj0gKHdpbmRvdy1oZWlnaHQgd2luZG93KSBtaW4taGVpZ2h0KQoJ CSA7OyAnd2luZG93LS1kaXNwbGF5LWJ1ZmZlcicgY2FuIHJlc2l6ZSB0aGlzIHdpbmRvdyBp ZgoJCSA7OyBhbmQgb25seSBpZiBpdCBoYXMgYSAncXVpdC1yZXN0b3JlJyBwYXJhbWV0ZXIK CQkgOzsgY2VydGlmeWluZyB0aGF0IGl0IGFsd2F5cyBzaG93ZWQgQlVGRkVSIGJlZm9yZS4K CQkgKGxldCAoKGhlaWdodCAod2luZG93LWhlaWdodCB3aW5kb3cpKQoJCSAgICAgICAocXVp dC1yZXN0b3JlICh3aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAncXVpdC1yZXN0b3JlKSkpCgkJ ICAgKGFuZCBxdWl0LXJlc3RvcmUKCQkJKGVxIChudGggMSBxdWl0LXJlc3RvcmUpICd3aW5k b3cpCgkJCSh3aW5kb3ctcmVzaXphYmxlLXAgd2luZG93ICgtIG1pbi1oZWlnaHQgaGVpZ2h0 KSkpKSkKCSAgICAgKHdpbmRvdy0tZGlzcGxheS1idWZmZXIgYnVmZmVyIHdpbmRvdyAncmV1 c2UgYWxpc3QpKQoJKGFuZCAobm90IChmcmFtZS1wYXJhbWV0ZXIgbmlsICd1bnNwbGl0dGFi bGUpKQogICAgICAgICAgICAgKG9yIChub3QgKG51bWJlcnAgbWluLWhlaWdodCkpCgkJICh3 aW5kb3ctc2l6YWJsZS1wIG5pbCAoLSBtaW4taGVpZ2h0KSkpCiAgICAgICAgICAgICAobGV0 ICgoc3BsaXQtaGVpZ2h0LXRocmVzaG9sZCAwKQoJCSAgIHNwbGl0LXdpZHRoLXRocmVzaG9s ZCkKICAgICAgICAgICAgICAgKHNldHEgd2luZG93ICh3aW5kb3ctLXRyeS10by1zcGxpdC13 aW5kb3cKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWQtd2luZG93KSBh bGlzdCkpKQogICAgICAgICAgICAgKHdpbmRvdy0tZGlzcGxheS1idWZmZXIKICAgICAgICAg ICAgICBidWZmZXIgd2luZG93ICd3aW5kb3cgYWxpc3QgZGlzcGxheS1idWZmZXItbWFyay1k ZWRpY2F0ZWQpKQoJKGFuZCAoc2V0cSB3aW5kb3cgKHdpbmRvdy1pbi1kaXJlY3Rpb24gJ2Jl bG93KSkKICAgICAgICAgICAgIChub3QgKHdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cpKQoJ ICAgICAob3IgKG5vdCAobnVtYmVycCBtaW4taGVpZ2h0KSkKCQkgOzsgQSB3aW5kb3cgdGhh dCBzaG93ZWQgYW5vdGhlciBidWZmZXIgYmVmb3JlIGNhbm5vdAoJCSA7OyBiZSByZXNpemVk LgoJCSAoPj0gKHdpbmRvdy1oZWlnaHQgd2luZG93KSBtaW4taGVpZ2h0KSkKCSAgICAgKHdp bmRvdy0tZGlzcGxheS1idWZmZXIKICAgICAgICAgICAgICBidWZmZXIgd2luZG93ICdyZXVz ZSBhbGlzdCBkaXNwbGF5LWJ1ZmZlci1tYXJrLWRlZGljYXRlZCkpKSkpCg== --------------040108070406020107070303--