From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Lennart Borgman Newsgroups: gmane.emacs.devel Subject: Re: The unwarranted scrolling assumption Date: Thu, 17 Jun 2010 06:55:17 +0200 Message-ID: References: <87ocfcj7r4.fsf@mail.jurta.org> <87631jvpzg.fsf@gmail.com> <4C18211C.3070106@harpegolden.net> <83typ2isns.fsf@gnu.org> <83mxuuicjc.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001636c5977044fa07048932a6e5 X-Trace: dough.gmane.org 1276750561 1651 80.91.229.12 (17 Jun 2010 04:56:01 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 17 Jun 2010 04:56:01 +0000 (UTC) Cc: david@harpegolden.net, emacs-devel@gnu.org, Stefan Monnier , storm@cua.dk To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Jun 17 06:55:59 2010 connect(): No such file or directory Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1OP78w-0008UL-Uh for ged-emacs-devel@m.gmane.org; Thu, 17 Jun 2010 06:55:59 +0200 Original-Received: from localhost ([127.0.0.1]:45235 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OP78w-0008Ef-9y for ged-emacs-devel@m.gmane.org; Thu, 17 Jun 2010 00:55:58 -0400 Original-Received: from [140.186.70.92] (port=53144 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OP78e-00088J-Pl for emacs-devel@gnu.org; Thu, 17 Jun 2010 00:55:42 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OP78c-0007y0-UA for emacs-devel@gnu.org; Thu, 17 Jun 2010 00:55:40 -0400 Original-Received: from mail-yw0-f177.google.com ([209.85.211.177]:42021) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OP78c-0007xw-Nc; Thu, 17 Jun 2010 00:55:38 -0400 Original-Received: by ywh7 with SMTP id 7so7052254ywh.26 for ; Wed, 16 Jun 2010 21:55:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:in-reply-to :references:from:date:message-id:subject:to:cc:content-type; bh=Y9n2cSvKtG7rqGOwX7X0byxnDVZd5e9iEo2dCdIc5KM=; b=uQtZ1F4k5ydZQCxtMlUBRE3YfSYD4yxyqlfcPe78zAYKOMgnwekZxFNuA6xIJ/Khqa dT8JUhWfhm4lnu0z8jHDZ/RGJ6GVBamLaRd7+auEM0bNufEE3YTi7zuZAkDqbz4e1Q+v NqUXae7sB3/qLlbJbfQxrmW0Gl/NCWAeUckws= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; b=dy+EezhdBQkRkFluj1MldaTUFIGlue21y+5+fhElvjgQWZZDDsMaCpWXjDDWeD/mvj 35fGvWT84WeTkCU1NUHqbTaX20q6ykgkNXWZeZwWwK9k2y6J3S+iE3LcEF7lYPSb/0y/ bManaE8Z8uVJGj1QeWMSV3bIVTRMLuGS2cLGU= Original-Received: by 10.101.3.11 with SMTP id f11mr8359365ani.22.1276750537750; Wed, 16 Jun 2010 21:55:37 -0700 (PDT) Original-Received: by 10.100.154.15 with HTTP; Wed, 16 Jun 2010 21:55:17 -0700 (PDT) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:126058 Archived-At: --001636c5977044fa07048932a6e5 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Thu, Jun 17, 2010 at 5:59 AM, Lennart Borgman wrote: > On Thu, Jun 17, 2010 at 5:10 AM, Lennart Borgman > wrote: >> On Thu, Jun 17, 2010 at 5:05 AM, Eli Zaretskii wrote: >>>> From: Stefan Monnier >>>> Cc: Lennart Borgman , =C2=A0storm@cua.dk, = =C2=A0emacs-devel@gnu.org, =C2=A0david@harpegolden.net >>>> Date: Wed, 16 Jun 2010 20:54:52 -0400 >>>> >>>> Indeed what he suggests is probably impossible. =C2=A0But the end resu= lt he's >>>> after is definitely possible: move the window-start as little as possi= ble >>>> (tho still, line by line) to keep point displayed. >>> >>> xdisp.c already tries to do that, we just need to find out why it >>> fails in this particular case. >> >> After trying to restore the clip_changed value when save-restriction, >> widen etc unnecessarily changed I suddenly wonder why they changed it. >> Is not this something that only redisplay should handle? redisplay_can >> easily save the clipping when it sets clip_changed to 0 and compare >> with that when it enters redisplay_window and set clip_changed to 1 if >> the saved clipping does not match. >> >> Does that sound reasonable? (I do not know if I am missing something.) > > At least it works. I just tested. First time I am using Emacs without > "jumping scrolling"! :-) > > If you think this is the right way to fix it I will send patches later > when I cleaned up a bit. > > There is one more similar problem which I do not know how to handle, > in fileio.c. In the function Finsert_file_contents clip_changed is set > to 1. I am not quite sure of the impact of this but it looks wrong to > me to do this. I think the display engine should be told, but it must > decide what to do with redisplay, not fileio. Here is the patch (without the fileio.c part which I leave until I got some comments). --001636c5977044fa07048932a6e5 Content-Type: application/octet-stream; name="buffer-h-jumpscroll-0.diff" Content-Disposition: attachment; filename="buffer-h-jumpscroll-0.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gaj47w7q0 PT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9idWZmZXIuaCcNCi0tLSB0cnVuay9zcmMvYnVmZmVyLmgJ MjAxMC0wNC0yMCAxNzowMTozOSArMDAwMA0KKysrIHBhdGNoZWQvc3JjL2J1ZmZlci5oCTIwMTAt MDYtMTcgMDQ6NDg6MDEgKzAwMDANCkBAIC01NDEsNiArNTQxLDkgQEANCiANCiAgIC8qIFNldCBu b256ZXJvIHdoZW5ldmVyIHRoZSBuYXJyb3dpbmcgaXMgY2hhbmdlZCBpbiB0aGlzIGJ1ZmZlci4g ICovDQogICBpbnQgY2xpcF9jaGFuZ2VkOw0KKyAgLyogU2V0IHRvIHRoZSBuYXJyb3dpbmcgaW4g ZWZmZWN0IHdoZW4gY2xpcF9jaGFuZ2VkIGlzIHNldCB0byAwLiAqLw0KKyAgRU1BQ1NfSU5UIGNs aXBfYmVndjsNCisgIEVNQUNTX0lOVCBjbGlwX3p2Ow0KIA0KICAgLyogSWYgdGhlIGxvbmcgbGlu ZSBzY2FuIGNhY2hlIGlzIGVuYWJsZWQgKGkuZS4gdGhlIGJ1ZmZlci1sb2NhbA0KICAgICAgdmFy aWFibGUgY2FjaGUtbG9uZy1saW5lLXNjYW5zIGlzIG5vbi1uaWwpLCBuZXdsaW5lX2NhY2hlDQoN Cg== --001636c5977044fa07048932a6e5 Content-Type: application/octet-stream; name="editfns-jumpscroll-0.diff" Content-Disposition: attachment; filename="editfns-jumpscroll-0.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gaj49ski1 PT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9lZGl0Zm5zLmMnDQotLS0gdHJ1bmsvc3JjL2VkaXRmbnMu YwkyMDEwLTA2LTEwIDA1OjMxOjM2ICswMDAwDQorKysgcGF0Y2hlZC9zcmMvZWRpdGZucy5jCTIw MTAtMDYtMTcgMDQ6MDc6MTAgKzAwMDANCkBAIC0zMjE1LDEyICszMjIxLDEzIEBADQogICAgICAo KQ0KIHsNCiAgIGlmIChCRUcgIT0gQkVHViB8fCBaICE9IFpWKQ0KLSAgICBjdXJyZW50X2J1ZmZl ci0+Y2xpcF9jaGFuZ2VkID0gMTsNCisgICAgew0KICAgQkVHViA9IEJFRzsNCiAgIEJFR1ZfQllU RSA9IEJFR19CWVRFOw0KICAgU0VUX0JVRl9aVl9CT1RIIChjdXJyZW50X2J1ZmZlciwgWiwgWl9C WVRFKTsNCiAgIC8qIENoYW5naW5nIHRoZSBidWZmZXIgYm91bmRzIGludmFsaWRhdGVzIGFueSBy ZWNvcmRlZCBjdXJyZW50IGNvbHVtbi4gICovDQogICBpbnZhbGlkYXRlX2N1cnJlbnRfY29sdW1u ICgpOw0KKyAgICB9DQogICByZXR1cm4gUW5pbDsNCiB9DQogDQpAQCAtMzI0OSw4ICszMjU2LDcg QEANCiAgICAgYXJnc19vdXRfb2ZfcmFuZ2UgKHN0YXJ0LCBlbmQpOw0KIA0KICAgaWYgKEJFR1Yg IT0gWEZBU1RJTlQgKHN0YXJ0KSB8fCBaViAhPSBYRkFTVElOVCAoZW5kKSkNCi0gICAgY3VycmVu dF9idWZmZXItPmNsaXBfY2hhbmdlZCA9IDE7DQotDQorICAgIHsNCiAgIFNFVF9CVUZfQkVHViAo Y3VycmVudF9idWZmZXIsIFhGQVNUSU5UIChzdGFydCkpOw0KICAgU0VUX0JVRl9aViAoY3VycmVu dF9idWZmZXIsIFhGQVNUSU5UIChlbmQpKTsNCiAgIGlmIChQVCA8IFhGQVNUSU5UIChzdGFydCkp DQpAQCAtMzI1OSw2ICszMjY1LDcgQEANCiAgICAgU0VUX1BUIChYRkFTVElOVCAoZW5kKSk7DQog ICAvKiBDaGFuZ2luZyB0aGUgYnVmZmVyIGJvdW5kcyBpbnZhbGlkYXRlcyBhbnkgcmVjb3JkZWQg Y3VycmVudCBjb2x1bW4uICAqLw0KICAgaW52YWxpZGF0ZV9jdXJyZW50X2NvbHVtbiAoKTsNCisg ICAgfQ0KICAgcmV0dXJuIFFuaWw7DQogfQ0KIA0KQEAgLTMzMjcsOCArMzMzNCw2IEBADQogCQkJ ICAgICBjbGlwX3RvX2JvdW5kcyAoYmVnLT5jaGFycG9zLCBwdCwgZW5kLT5jaGFycG9zKSwNCiAJ CQkgICAgIGNsaXBfdG9fYm91bmRzIChiZWctPmJ5dGVwb3MsIEJVRl9QVF9CWVRFIChidWYpLA0K IAkJCQkJICAgICBlbmQtPmJ5dGVwb3MpKTsNCi0NCi0JICBidWYtPmNsaXBfY2hhbmdlZCA9IDE7 IC8qIFJlbWVtYmVyIHRoYXQgdGhlIG5hcnJvd2luZyBjaGFuZ2VkLiAqLw0KIAl9DQogICAgIH0N CiAgIGVsc2UNCkBAIC0zMzQwLDggKzMzNDUsNiBAQA0KIAl7DQogCSAgU0VUX0JVRl9CRUdWX0JP VEggKGJ1ZiwgQlVGX0JFRyAoYnVmKSwgQlVGX0JFR19CWVRFIChidWYpKTsNCiAJICBTRVRfQlVG X1pWX0JPVEggKGJ1ZiwgQlVGX1ogKGJ1ZiksIEJVRl9aX0JZVEUgKGJ1ZikpOw0KLQ0KLQkgIGJ1 Zi0+Y2xpcF9jaGFuZ2VkID0gMTsgLyogUmVtZW1iZXIgdGhhdCB0aGUgbmFycm93aW5nIGNoYW5n ZWQuICovDQogCX0NCiAgICAgfQ0KIA0KDQo= --001636c5977044fa07048932a6e5 Content-Type: application/octet-stream; name="xdisp-jumpscroll-0.diff" Content-Disposition: attachment; filename="xdisp-jumpscroll-0.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gaj4a1ut2 PT09IG1vZGlmaWVkIGZpbGUgJ3NyYy94ZGlzcC5jJw0KLS0tIHRydW5rL3NyYy94ZGlzcC5jCTIw MTAtMDYtMDEgMDI6MzQ6NDkgKzAwMDANCisrKyBwYXRjaGVkL3NyYy94ZGlzcC5jCTIwMTAtMDYt MTcgMDQ6MTQ6MjEgKzAwMDANCkBAIC0xMTcxNiw3ICsxMTcxNiwxMSBAQA0KIAkgICAmJiB3LT5j dXJyZW50X21hdHJpeC0+YnVmZmVyID09IGINCiAJICAgJiYgdy0+Y3VycmVudF9tYXRyaXgtPnp2 ID09IEJVRl9aViAoYikNCiAJICAgJiYgdy0+Y3VycmVudF9tYXRyaXgtPmJlZ3YgPT0gQlVGX0JF R1YgKGIpKQ0KKyAgICB7DQogICAgIGItPmNsaXBfY2hhbmdlZCA9IDA7DQorICAgICAgYi0+Y2xp cF9iZWd2ID0gYi0+YmVndjsNCisgICAgICBiLT5jbGlwX3p2ID0gYi0+enY7DQorICAgIH0NCiAN CiAgIC8qIElmIGRpc3BsYXkgd2Fzbid0IHBhdXNlZCwgYW5kIFcgaXMgbm90IGEgdG9vbCBiYXIg d2luZG93LCBzZWUgaWYNCiAgICAgIHBvaW50IGhhcyBiZWVuIG1vdmVkIGludG8gb3Igb3V0IG9m IGEgY29tcG9zaXRpb24uICBJbiB0aGF0IGNhc2UsDQpAQCAtMTQwNTUsNiArMTQwNTksOSBAQA0K ICAgaW50IGxhc3RfbGluZV9taXNmaXQgPSAwOw0KICAgaW50IGJlZ191bmNoYW5nZWQsIGVuZF91 bmNoYW5nZWQ7DQogDQorICBpZiAoKGJ1ZmZlci0+Y2xpcF9iZWd2ICE9IGJ1ZmZlci0+YmVndikg fHwgKGJ1ZmZlci0+Y2xpcF96diAhPSBidWZmZXItPnp2KSkNCisgICAgYnVmZmVyLT5jbGlwX2No YW5nZWQgPSAxOw0KKw0KICAgU0VUX1RFWFRfUE9TIChscG9pbnQsIFBULCBQVF9CWVRFKTsNCiAg IG9wb2ludCA9IGxwb2ludDsNCiANCg0K --001636c5977044fa07048932a6e5--