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 14:30:46 -0400 Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: <1049740246.15331.51.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> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Trace: main.gmane.org 1049745426 7492 80.91.224.249 (7 Apr 2003 19:57:06 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Mon, 7 Apr 2003 19:57:06 +0000 (UTC) Cc: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Mon Apr 07 21:57:01 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 192cjl-0001w7-00 for ; Mon, 07 Apr 2003 21:57:01 +0200 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 192cnP-0004DR-00 for ; Mon, 07 Apr 2003 22:00:47 +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 192cfi-0007Eb-04 for emacs-devel@quimby.gnus.org; Mon, 07 Apr 2003 15:52:50 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10.13) id 192cDP-0005Qe-00 for emacs-devel@gnu.org; Mon, 07 Apr 2003 15:23:35 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10.13) id 192c8i-0003Dt-00 for emacs-devel@gnu.org; Mon, 07 Apr 2003 15:18:45 -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 192c0k-0000oT-00; Mon, 07 Apr 2003 15:10:30 -0400 Original-Received: from landau.devel.redhat.com (landau.devel.redhat.com [172.16.56.103])h37IWSu30008; Mon, 7 Apr 2003 14:32:28 -0400 Original-To: Stefan Monnier In-Reply-To: <200304071657.h37Gv2LG024488@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:12993 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:12993 On Mon, 2003-04-07 at 12:57, Stefan Monnier wrote: > > > > 3. Make the GTK scrollbar more customizable so that it can optionally > > > > handle a character based approach and hence behave, within Emacs, > > > > more like the native scrollbar than the pixel based variant of the > > > > GTK scrollbar. > > > > > > I think this is the only reasonable solution. > > > > > > I agree with Miles--this is the only right way. > > > > > > Owen, would you please implement this facility in the GTK scroll bar? > > > > I don't think there has been a satisfactory explanation of how you > > are going to deal with minimum size issues; which for some themes > > occur on quite moderately sized buffers. (As I said earlier, for > > Red Hat's default theme, the minimum scrollbar thumb size is > > ~30 pixels) > > 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) Not: min_size + (total_size - min_size) * document_page_size / document_size The difference between these two is substantial. It's possible to fake your algorithm using GTK+'s range code, but it requires knowing both the minimum size in pixels (easy to determine as a style property) and the trough size in pixels (a complicated function of style properties and the allocated size of the range.) Regards, Owen