From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Jason Rumney Newsgroups: gmane.emacs.devel Subject: Re: Scrollbar thumbs Date: Fri, 06 Nov 2009 07:55:51 +0800 Message-ID: <4AF36607.50508@gnu.org> References: <03A2EC54153A4BB1AAE5AF2D2E2B7264@editkapc> <87aaz3jgkp.fsf@catnip.gol.com> <4AF1D60C.6080005@swipnet.se> <87skctklaz.fsf@lola.goethe.zz> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1257465430 24654 80.91.229.12 (5 Nov 2009 23:57:10 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 5 Nov 2009 23:57:10 +0000 (UTC) Cc: emacs-devel@gnu.org To: David Kastrup Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Nov 06 00:57:03 2009 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.50) id 1N6CCM-0004lP-KT for ged-emacs-devel@m.gmane.org; Fri, 06 Nov 2009 00:57:02 +0100 Original-Received: from localhost ([127.0.0.1]:39694 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N6CCM-0004rw-8b for ged-emacs-devel@m.gmane.org; Thu, 05 Nov 2009 18:57:02 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1N6CCE-0004oO-0j for emacs-devel@gnu.org; Thu, 05 Nov 2009 18:56:54 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1N6CC8-0004fa-SE for emacs-devel@gnu.org; Thu, 05 Nov 2009 18:56:53 -0500 Original-Received: from [199.232.76.173] (port=40813 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N6CC8-0004fQ-NA for emacs-devel@gnu.org; Thu, 05 Nov 2009 18:56:48 -0500 Original-Received: from mail-ew0-f228.google.com ([209.85.219.228]:39746) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1N6CC6-00060A-PZ; Thu, 05 Nov 2009 18:56:46 -0500 Original-Received: by ewy28 with SMTP id 28so622439ewy.42 for ; Thu, 05 Nov 2009 15:56:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=VPSWxXMI/Zz7MqpXTckduq7TsAHCx6BxJd+IAQZlEc0=; b=cMOlkTMsnnQpPDTKC/McCWs7BVuAEeEEXkJJ8f6ynO0ApG8ZkELmLFPByAcefRggU0 oGrpCBZtbI5Mxpn5+saT3UDbMxwFoHv6PO75i6L331k1GEBzPuFZm+8ZdcEoYYW3LPvJ Z4RhSw5sdccLngjOq3qwdpYXcRQFgNJZjUJj0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; b=p+cSnRxe7kPIF2HCDBYw5xb0cWi0mT5gK8pgdxm59YRNgn1oPHRnSYo2u82HJOutA2 N5ZOTxpFmZPey9kFzr/Jufxx5MI6r/zb7Klk33METIeTR5ZtfefEain5AatyZQgaLqMF zTiGHBhItGCjCecxirIBosl5iFUIJUE0s9oWY= Original-Received: by 10.216.90.133 with SMTP id e5mr1239583wef.23.1257465405673; Thu, 05 Nov 2009 15:56:45 -0800 (PST) Original-Received: from ?10.1.1.112? ([61.4.103.130]) by mx.google.com with ESMTPS id g11sm2533240gve.5.2009.11.05.15.56.41 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 05 Nov 2009 15:56:43 -0800 (PST) User-Agent: Thunderbird 2.0.0.23 (Windows/20090812) In-Reply-To: <87skctklaz.fsf@lola.goethe.zz> X-detected-operating-system: by monty-python.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:116667 Archived-At: David Kastrup wrote: > The "design flaw" is that Emacs has a variable line height. An editor > is primarily supposed to deal with lines of text, not with continuous > graphical panes. And previous to Emacs 21, Emacs only dealt with lines > of text of constant height. Previous to Emacs 19, the lines > corresponded 1:1 to the screen lines. > Even Emacs 19 had line wrapping, so counting CR characters as the file is read (as some simple text editors do) has never been the solution to this problem. The only solution seems to be to render the entire buffer offscreen in background, adjusting the scrollbar as we get more detailed information about the real contents of the buffer. This is what word processors, web browsers and other complex applications do - you see the first page quite quickly, then you see the scroll bar growing as it renders the buffer in background. Most applications do not even make an initial guess, so you cannot scroll to the bottom of the buffer until the background rendering is finished. The application then needs to use extra memory to cache the metrics it has calculated to avoid having to rerender the entire document on every change.