From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Pip Cet Newsgroups: gmane.emacs.bugs Subject: bug#21333: 25.0.50; window-size-change-functions not called after mini-window resize Date: Tue, 25 Aug 2015 10:34:23 +0000 Message-ID: References: <83k2skhhz1.fsf@gnu.org> <55DB5D3E.1000706@gmx.at> <83vbc4fsjd.fsf@gnu.org> <55DC1856.7000501@gmx.at> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a1144ac340f2b4a051e2047d9 X-Trace: ger.gmane.org 1440498923 13580 80.91.229.3 (25 Aug 2015 10:35:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 25 Aug 2015 10:35:23 +0000 (UTC) Cc: 21333@debbugs.gnu.org To: martin rudalics Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Aug 25 12:35:14 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZUBZQ-0000xI-BI for geb-bug-gnu-emacs@m.gmane.org; Tue, 25 Aug 2015 12:35:12 +0200 Original-Received: from localhost ([::1]:59170 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZUBZP-0002EA-Gs for geb-bug-gnu-emacs@m.gmane.org; Tue, 25 Aug 2015 06:35:11 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60917) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZUBZL-0002B3-6J for bug-gnu-emacs@gnu.org; Tue, 25 Aug 2015 06:35:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZUBZH-0000G6-2W for bug-gnu-emacs@gnu.org; Tue, 25 Aug 2015 06:35:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:45379) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZUBZG-0000Fr-Vl for bug-gnu-emacs@gnu.org; Tue, 25 Aug 2015 06:35:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1ZUBZG-0005o0-Mh for bug-gnu-emacs@gnu.org; Tue, 25 Aug 2015 06:35:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Pip Cet Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 25 Aug 2015 10:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 21333 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 21333-submit@debbugs.gnu.org id=B21333.144049886722272 (code B ref 21333); Tue, 25 Aug 2015 10:35:02 +0000 Original-Received: (at 21333) by debbugs.gnu.org; 25 Aug 2015 10:34:27 +0000 Original-Received: from localhost ([127.0.0.1]:37589 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZUBYg-0005n9-Qb for submit@debbugs.gnu.org; Tue, 25 Aug 2015 06:34:27 -0400 Original-Received: from mail-io0-f173.google.com ([209.85.223.173]:33094) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZUBYe-0005n0-FO for 21333@debbugs.gnu.org; Tue, 25 Aug 2015 06:34:25 -0400 Original-Received: by iods203 with SMTP id s203so181010189iod.0 for <21333@debbugs.gnu.org>; Tue, 25 Aug 2015 03:34:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=3a/P/B1mgS06Ki13yU3vikwgXlZ7hrTCFILKeG15nR4=; b=Weun/fkoIB6kCo92coyLgk1XnRlZJPqmyBPvwZQrMWfEU8WzgDDwzMdStdWG64jZUr 8YgKpWjyyXjzI4nbGZlkeCTaLpNqDV5QUXDcg5cZCLKx97Ez5MFQiI0Xv6yRjvyx08iw BMKwrgUznmrDFzT9lsWp0k58a+MC/xTHfCbEHnw83T446a+ywMtevp4fyGkeT1+UeJKB B7w+eLyXj73khu7BY+OPJQP7v3nA/nRnmWnIOEWZUS7ZRvOGpDyAyASiKDAF0Jz7euYZ IHcHIlPgojRXHF2Tb4Qbf0kZYYJmiPeQ2GNaXLMYpDaMIBkELRDPZxjyQcvMVvPPS6k9 NDXQ== X-Received: by 10.107.47.97 with SMTP id j94mr17264213ioo.136.1440498863504; Tue, 25 Aug 2015 03:34:23 -0700 (PDT) Original-Received: by 10.79.78.66 with HTTP; Tue, 25 Aug 2015 03:34:23 -0700 (PDT) In-Reply-To: <55DC1856.7000501@gmx.at> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x 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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:105797 Archived-At: --001a1144ac340f2b4a051e2047d9 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Tue, Aug 25, 2015 at 7:25 AM, martin rudalics wrote: >>> Naively spoken it's obvious that when you shrink the minibuffer you sho= w >>> more lines in the window above and =E2=80=98linum-mode=E2=80=99 has to = add numbers for >>> those lines. And when you enlarge the minibuffer, =E2=80=98follow-mode= =E2=80=99 will >>> lose some lines at the bottom of the left window and has to show them a= t >>> the top of the right window. >> >> In well-behaved modes this happens automatically, as part of >> redisplay. > > Via =E2=80=98pre-redisplay-function=E2=80=99? Well, we have `pre-redisplay-functions', with an s, defined in simple.el, and I've attached some (trivial) code that takes things a little further and calls a normal hook when a window's size changed. > How does a well-behaved mode detect > whether it has to make "this happen automatically"? By walking all > windows and checking whether their sizes, start and end positions > changed, I suppose. That's what my code does. I thought I could get away with using the arguments passed to pre-redisplay-function to limit which windows to check, but that doesn't work when we "goto retry" and re-run pre-redisplay-function. I will study the code in xdisp.c further and see whether I can understand what the purpose of must_finish is. >> I'd say, don't set the "size changed" flag unless the size really >> changed. > > Sure. Patch attached (no news on the paperwork so far). I'm not sure precisely which properties should be checked for change, though. I do think it would be best not to use set-window-configuration in restoring state after exiting the minibuffer at all. > Alternatively, Fset_window_configuration could run a modified version of > =E2=80=98compare-window-configurations=E2=80=99 to compare the current co= nfiguration > with the one to be restored and restore the old configuration iff these > differ. I'm not sure whether this would be any cheaper, especially when > the configuration does change frequently. I think it would be better to do this explicitly, even if we have to compare all properties. Thanks again to both of you, Pip --001a1144ac340f2b4a051e2047d9 Content-Type: text/x-emacs-lisp; charset=US-ASCII; name="emacs-via-redisplay-014.el" Content-Disposition: attachment; filename="emacs-via-redisplay-014.el" Content-Transfer-Encoding: base64 X-Attachment-Id: f_idr7rhsx0 OzsgZ2VuZXJpYyBjb2RlOgooZGVmdmFyIHByZWRpc3BsYXktaG9vayBuaWwKICAiTm9ybWFsIGhv b2sgcnVuIGJlZm9yZSBwcmVkaXNwbGF5LiIpCihkZWZ2YXIgd2luZG93LWNoYW5nZWQtc2l6ZS1o b29rIG5pbAogICJOb3JtYWwgaG9vayBydW4gd2hlbiBhIHdpbmRvdyBkaXNwbGF5aW5nIHRoaXMg YnVmZmVyIGNoYW5nZWQgc2l6ZS4iKQooZGVmdmFyIHByZWRpc3BsYXktc2l6ZXMgKG1ha2UtaGFz aC10YWJsZSA6d2Vha25lc3MgJ2tleSA6dGVzdCAnZXEpCiAgIkhhc2ggdGFibGUgb2Ygb2xkIHdp bmRvdyBzaXplcyB0byBkZXRlY3Qgc2l6ZSBjaGFuZ2VzLiIpCgooZGVmdW4gcHJlZGlzcGxheS1j aGVjay13aW5kb3cgKCkKICAiUnVuIGluIGhvb2sgYHByZWRpc3BsYXktaG9vaycgdG8gZGV0ZXJt aW5lIHdoaWNoIHdpbmRvd3MgY2hhbmdlZCBzaXplLiIKICAobGV0KiAoKHcgKHNlbGVjdGVkLXdp bmRvdykpCgkgKG9sZC1zaXplIChnZXRoYXNoIHcgcHJlZGlzcGxheS1zaXplcykpCgkgKG5ldy1z aXplIChjb25zICh3aW5kb3ctcGl4ZWwtd2lkdGggdykKCQkJICh3aW5kb3ctcGl4ZWwtaGVpZ2h0 IHcpKSkpCiAgICAodW5sZXNzIChlcXVhbCBvbGQtc2l6ZSBuZXctc2l6ZSkKICAgICAgKHJ1bi1o b29rcyAnd2luZG93LWNoYW5nZWQtc2l6ZS1ob29rKQogICAgICAocHV0aGFzaCB3IG5ldy1zaXpl IHByZWRpc3BsYXktc2l6ZXMpKSkpCgooYWRkLWhvb2sgJ3ByZWRpc3BsYXktaG9vayAjJ3ByZWRp c3BsYXktY2hlY2std2luZG93KQoKKGRlZnVuIHByZWRpc3BsYXktZnVuY3Rpb24gKCZyZXN0IGFy Z3MpCiAgKGRvbGlzdCAodyAod2luZG93LWxpc3QtMSBuaWwgdCB0KSkKICAgICh3aXRoLXNlbGVj dGVkLXdpbmRvdyB3CiAgICAgIChydW4taG9va3MgJ3ByZWRpc3BsYXktaG9vaykpKSkKCihhZGQt ZnVuY3Rpb24gOmJlZm9yZSBwcmUtcmVkaXNwbGF5LWZ1bmN0aW9uCiAgICAgICAgICAgICAgIydw cmVkaXNwbGF5LWZ1bmN0aW9uKQo7OyBkZW1vbnN0cmF0aW9uIGNvZGU6CihkZWZ1biBteS13aW5k b3ctY2hhbmdlZC1zaXplICgpCiAgKGluc2VydCAoZm9ybWF0ICIlZHglZFxuIiAod2luZG93LXBp eGVsLXdpZHRoIChzZWxlY3RlZC13aW5kb3cpKQogICAgICAgICAgICAgICAgICAod2luZG93LXBp eGVsLWhlaWdodCAoc2VsZWN0ZWQtd2luZG93KSkpKSkKCihkZWZ1biBkaXNwbGF5LWR5bmFtaWMt c2l6ZSAoKQogIChhZGQtaG9vayAnd2luZG93LWNoYW5nZWQtc2l6ZS1ob29rICMnbXktd2luZG93 LWNoYW5nZWQtc2l6ZSBuaWwgdCkpCgo7OyBkZWFkIGNvZGU6Cgo7OyBJIHRob3VnaHQgdGhpcyB3 b3VsZCB3b3JrLCBidXQgaXQgZG9lc24ndCwgZm9yIHJlYXNvbnMgSSBiZWxpZXZlCjs7IEVsaSBk ZXNjcmliZWQuCgo7OyAoZGVmdW4gcHJlZGlzcGxheS1ydW4taG9vayAod2luZG93KQo7OyAgICh3 aXRoLXNlbGVjdGVkLXdpbmRvdyB3aW5kb3cKOzsgICAgIChydW4taG9va3MgJ3ByZWRpc3BsYXkt aG9vaykpKQoKOzsgKHB1c2ggIydwcmVkaXNwbGF5LXJ1bi1ob29rIHByZS1yZWRpc3BsYXktZnVu Y3Rpb25zKQoK --001a1144ac340f2b4a051e2047d9 Content-Type: text/x-patch; charset=US-ASCII; name="0001-Only-set-FRAME_WINDOW_SIZES_CHANGED-if-necessary-213.patch" Content-Disposition: attachment; filename="0001-Only-set-FRAME_WINDOW_SIZES_CHANGED-if-necessary-213.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_idr7rlhg1 RnJvbSA5NGJhMGE4ZWQxMjdkYzE0N2ViNjhiZjAxOWExZTgzNzA2MjJjNzQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXAgPHBpcGNldEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwg MjUgQXVnIDIwMTUgMTA6MjE6MTggKzAwMDAKU3ViamVjdDogW1BBVENIXSBPbmx5IHNldCBGUkFN RV9XSU5ET1dfU0laRVNfQ0hBTkdFRCBpZiBuZWNlc3NhcnkgKCMyMTMzMykKCi0tLQogc3JjL3dp bmRvdy5jIHwgOCArKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy93aW5kb3cuYyBiL3NyYy93aW5kb3cuYwppbmRl eCA2OGJjOWU1Li42YmMwOTgyIDEwMDY0NAotLS0gYS9zcmMvd2luZG93LmMKKysrIGIvc3JjL3dp bmRvdy5jCkBAIC02MDc1LDcgKzYwNzUsNiBAQCB0aGUgcmV0dXJuIHZhbHVlIGlzIG5pbC4gIE90 aGVyd2lzZSB0aGUgdmFsdWUgaXMgdC4gICovKQogCX0KIAogICAgICAgZnNldF9yZWRpc3BsYXkg KGYpOwotICAgICAgRlJBTUVfV0lORE9XX1NJWkVTX0NIQU5HRUQgKGYpID0gdHJ1ZTsKIAogICAg ICAgLyogUHJvYmxlbTogRnJlZWluZyBhbGwgbWF0cmljZXMgYW5kIGxhdGVyIGFsbG9jYXRpbmcg dGhlbSBhZ2FpbgogCSBpcyBhIHNlcmlvdXMgcmVkaXNwbGF5IGZsaWNrZXJpbmcgcHJvYmxlbS4g IFdoYXQgd2Ugd291bGQKQEAgLTYxMjcsNiArNjEyNiwxMyBAQCB0aGUgcmV0dXJuIHZhbHVlIGlz IG5pbC4gIE90aGVyd2lzZSB0aGUgdmFsdWUgaXMgdC4gICovKQogCSAgLyogSWYgd2Ugc3F1aXJy ZWxlZCBhd2F5IHRoZSBidWZmZXIsIHJlc3RvcmUgaXQgbm93LiAgKi8KIAkgIGlmIChCVUZGRVJQ ICh3LT5jb21iaW5hdGlvbl9saW1pdCkpCiAJICAgIHdzZXRfYnVmZmVyICh3LCB3LT5jb21iaW5h dGlvbl9saW1pdCk7CisgICAgICAgICAgaWYgKCFGUkFNRV9XSU5ET1dfU0laRVNfQ0hBTkdFRCAo ZikpIHsKKyAgICAgICAgICAgIGlmICh3LT5waXhlbF9sZWZ0ICE9IFhGQVNUSU5UIChwLT5waXhl bF9sZWZ0KSB8fAorICAgICAgICAgICAgICAgIHctPnBpeGVsX3RvcCAhPSBYRkFTVElOVCAocC0+ cGl4ZWxfdG9wKSB8fAorICAgICAgICAgICAgICAgIHctPnBpeGVsX3dpZHRoICE9IFhGQVNUSU5U IChwLT5waXhlbF93aWR0aCkgfHwKKyAgICAgICAgICAgICAgICB3LT5waXhlbF9oZWlnaHQgIT0g WEZBU1RJTlQgKHAtPnBpeGVsX2hlaWdodCkpCisgICAgICAgICAgICAgIEZSQU1FX1dJTkRPV19T SVpFU19DSEFOR0VEIChmKSA9IHRydWU7CisgICAgICAgICAgfQogCSAgdy0+cGl4ZWxfbGVmdCA9 IFhGQVNUSU5UIChwLT5waXhlbF9sZWZ0KTsKIAkgIHctPnBpeGVsX3RvcCA9IFhGQVNUSU5UIChw LT5waXhlbF90b3ApOwogCSAgdy0+cGl4ZWxfd2lkdGggPSBYRkFTVElOVCAocC0+cGl4ZWxfd2lk dGgpOwotLSAKMi41LjAKCg== --001a1144ac340f2b4a051e2047d9--