From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Owen Taylor Newsgroups: gmane.emacs.devel Subject: Re: Gtk scrollbar: thumb too short Date: 07 Apr 2003 15:21:00 -0400 Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: <1049743260.15342.60.camel@localhost.localdomain> References: <20030325193739.ZGIN3924.fep01-svc.swip.net@gaffa.gaia.swipnet.se> <3E8345E8.4090509@swipnet.se> <1048872463.17161.132.camel@localhost.localdomain> <1049134327.3326.74.camel@localhost.localdomain> <84of3p2m44.fsf@lucy.is.informatik.uni-duisburg.de> <200304021352.h32DqLO11793@eel.dms.auburn.edu> <1049729721.4045.47.camel@localhost.localdomain> <200304071657.h37Gv2LG024488@rum.cs.yale.edu> <1049740246.15331.51.camel@localhost.localdomain> <200304071838.h37IcO6F025197@rum.cs.yale.edu> <1049741822.15342.57.camel@localhost.localdomain> <200304071902.h37J213q025315@rum.cs.yale.edu> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Trace: main.gmane.org 1049743782 32312 80.91.224.249 (7 Apr 2003 19:29:42 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Mon, 7 Apr 2003 19:29:42 +0000 (UTC) Cc: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Mon Apr 07 21:29:38 2003 Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 192cIg-0008Lx-00 for ; Mon, 07 Apr 2003 21:29:02 +0200 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 192cMK-0003vP-00 for ; Mon, 07 Apr 2003 21:32:48 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 192cIo-0007ks-01 for emacs-devel@quimby.gnus.org; Mon, 07 Apr 2003 15:29:10 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10.13) id 192cG0-0006kw-00 for emacs-devel@gnu.org; Mon, 07 Apr 2003 15:26:16 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10.13) id 192cCx-0005AG-00 for emacs-devel@gnu.org; Mon, 07 Apr 2003 15:23:07 -0400 Original-Received: from nat-pool-rdu.redhat.com ([66.187.233.200] helo=lacrosse.corp.redhat.com) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 192cCg-0004z9-00; Mon, 07 Apr 2003 15:22:50 -0400 Original-Received: from landau.devel.redhat.com (landau.devel.redhat.com [172.16.56.103])h37JMhu03498; Mon, 7 Apr 2003 15:22:48 -0400 Original-To: Stefan Monnier In-Reply-To: <200304071902.h37J213q025315@rum.cs.yale.edu> X-Mailer: Ximian Evolution 1.2.2 (1.2.2-0) Original-cc: rms@gnu.org Original-cc: Luc Teirlinck Original-cc: kai.grossjohann@gmx.net X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1b5 Precedence: list List-Id: Emacs development discussions. List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:12988 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:12988 On Mon, 2003-04-07 at 15:02, Stefan Monnier wrote: > > > > > IIUC, the scrollbar widget has the following: > > > > > > > > > > total-size > > > > > minimum thumb size > > > > > thumb size > > > > > thumb position > > > > > > > > > > Where minimum-thumb-size is (for all intents and purposes here) a constant. > > > > > Let's simplify things and subtract minimum thumb size from the current > > > > > thumb size and from the total, we get: > > > > > > > > > > total-size > > > > > thumb size > > > > > thumb position > > > > > > > > > > where > > > > > > > > > > 0 <= thumb-size <= total-size > > > > > thumb-size + thumb-position <= total-size > > > > > > > > This isn't a "simplification", it is a different algorithm > > > > from what GTK+ uses. The scrollbar thumb size in GTK+ > > > > is: > > > > > > > > MAX (min_size, total_size * document_page_size/document_size) > > > > > > [ I assume that total_size = document_size to simplify the discussion ] > > > > > So if min_size is 10, total_size is 100 and page_size is 1, how does > > > the user get to see the last page ? > > > > The 0-99 possible values for position in the document are mapped > > linearly onto the 0-90 possible values for the position of the > > slider thumb. > > My point exactly: > for all intents and purposes (other than actual drawing on > the screen which you might care about but we don't), we can > subtract 10 from all sizes and pretend the total_size is 90 > and minimum_size is 0 (and can thus be ignored). The difference from your computations and the GTK+ computations is that GTK+ only subtracts the minimum size from the total trough size, while you are also subtracting it from the thumb size. Regards, Owen