From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#17678: 24.4.50; Feature Request -- calculate new `window-start` & `window-end` before visual redisplay Date: Sat, 14 Jun 2014 22:24:38 -0400 Message-ID: References: <831tuvz3n8.fsf@gnu.org> <83ha3qxbcc.fsf@gnu.org> <8361k5xra8.fsf@gnu.org> <83r42tvt0l.fsf@gnu.org> <83ha3ox3vk.fsf@gnu.org> <838up0wmoa.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1402799129 27340 80.91.229.3 (15 Jun 2014 02:25:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 15 Jun 2014 02:25:29 +0000 (UTC) Cc: esq@lawlist.com, 17678@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Jun 15 04:25:22 2014 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 1Ww08G-0008FH-QD for geb-bug-gnu-emacs@m.gmane.org; Sun, 15 Jun 2014 04:25:21 +0200 Original-Received: from localhost ([::1]:37349 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ww08G-0004xj-A6 for geb-bug-gnu-emacs@m.gmane.org; Sat, 14 Jun 2014 22:25:20 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58614) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ww086-0004wV-Cy for bug-gnu-emacs@gnu.org; Sat, 14 Jun 2014 22:25:17 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ww07y-0001fH-UL for bug-gnu-emacs@gnu.org; Sat, 14 Jun 2014 22:25:10 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:56940) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ww07y-0001eq-Rv for bug-gnu-emacs@gnu.org; Sat, 14 Jun 2014 22:25:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1Ww07x-0006IP-Sc for bug-gnu-emacs@gnu.org; Sat, 14 Jun 2014 22:25:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 15 Jun 2014 02:25:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17678 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 17678-submit@debbugs.gnu.org id=B17678.140279908824177 (code B ref 17678); Sun, 15 Jun 2014 02:25:01 +0000 Original-Received: (at 17678) by debbugs.gnu.org; 15 Jun 2014 02:24:48 +0000 Original-Received: from localhost ([127.0.0.1]:48090 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Ww07j-0006Hs-GV for submit@debbugs.gnu.org; Sat, 14 Jun 2014 22:24:48 -0400 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.181]:22685) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Ww07h-0006Ha-1U for 17678@debbugs.gnu.org; Sat, 14 Jun 2014 22:24:45 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArYGAIDvNVNLd+D9/2dsb2JhbABZgwaDSr0vgw6BFxd0giUBAQEBAgFWHgUFCws0BwsUGA0kiAQI0hkXjnoHhDgElGKUN4FqgXGBWyE X-IPAS-Result: ArYGAIDvNVNLd+D9/2dsb2JhbABZgwaDSr0vgw6BFxd0giUBAQEBAgFWHgUFCws0BwsUGA0kiAQI0hkXjnoHhDgElGKUN4FqgXGBWyE X-IronPort-AV: E=Sophos;i="4.97,753,1389762000"; d="scan'208";a="66890427" Original-Received: from 75-119-224-253.dsl.teksavvy.com (HELO pastel.home) ([75.119.224.253]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 14 Jun 2014 22:24:38 -0400 Original-Received: by pastel.home (Postfix, from userid 20848) id 51DBD6047C; Sat, 14 Jun 2014 22:24:38 -0400 (EDT) In-Reply-To: <838up0wmoa.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 13 Jun 2014 23:59:33 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux) 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: 140.186.70.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:90393 Archived-At: >> Aha! Could you add comment somewhere in xdisp.c discussing the above >> issues about how/when is window-start obeyed and when it's not and >> when that causes a second pass and when that's handled on the fly? > I will see what I can do. > Done in emacs-24 revision 117239. Please see if it's good enough. Looks great, thank you very much. > I'm not sure I follow. Redisplay, at the level we are talking, has no > stages. It goes through all the windows on every frame, and does for > each window what it thinks has to be done in that window. A process > of redisplaying a window is done in one go, there are no stages or > phases in it. AFAIK window-scroll-functions (as well as jit-lock) is run in the middle of redisplay redisplay, so they get to see "the inside" and so they break the illusion that redisplay happens "in one go". > The window-scroll-functions are called when redisplay > thinks it will scroll the window in order to redisplay it. > Which modifications in window-scroll-functions did you have in mind? For example: - if code in window-scroll-functions affects some data which affects the mode-line, will the mode-line correctly reflect the state after running window-scroll-functions? - if code in window-scroll-functions affects some data which influences the display of other windows (e.g. adds overlays, changes window-start, you name it), will those changes be reflected in the other windows at the end of this redisplay cycle? - if point needs to be changed by redisplay (because window-start was set far away), will window-scroll-functions see the "old" point value or the "new" point value? -- Stefan