From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Miles Bader Newsgroups: gmane.emacs.devel Subject: Re: Emacs GTK scroll-bar flickering Date: 18 Mar 2003 10:33:09 +0900 Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: References: <84isum9rn9.fsf@lucy.is.informatik.uni-duisburg.de> <84r89aw20u.fsf@lucy.is.informatik.uni-duisburg.de> <20030314133509.GA32155@gnu.org> <3E722397.8080900@swipnet.se> <3E7659B2.2090608@swipnet.se> Reply-To: Miles Bader NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1047951545 4574 80.91.224.249 (18 Mar 2003 01:39:05 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Tue, 18 Mar 2003 01:39:05 +0000 (UTC) Cc: Kai Gro?johann Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Tue Mar 18 02:39: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 18v64D-0001Bd-00 for ; Tue, 18 Mar 2003 02:39:01 +0100 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 18v64G-0001ka-00 for ; Tue, 18 Mar 2003 02:39:04 +0100 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 18v63e-0008SV-04 for emacs-devel@quimby.gnus.org; Mon, 17 Mar 2003 20:38:26 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10.13) id 18v63H-0008H3-00 for emacs-devel@gnu.org; Mon, 17 Mar 2003 20:38:03 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10.13) id 18v63E-000882-00 for emacs-devel@gnu.org; Mon, 17 Mar 2003 20:38:01 -0500 Original-Received: from tyo202.gate.nec.co.jp ([202.32.8.202]) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18v63D-0007wN-00; Mon, 17 Mar 2003 20:37:59 -0500 Original-Received: from mailgate4.nec.co.jp ([10.7.69.197])h2I1bdU21365; Tue, 18 Mar 2003 10:37:39 +0900 (JST) Original-Received: (from root@localhost) by mailgate4.nec.co.jp (8.11.6/3.7W-MAILGATE-NEC) id h2I1bdk23609; Tue, 18 Mar 2003 10:37:39 +0900 (JST) Original-Received: from edtmg05.lsi.nec.co.jp (edtmg05.edc.nec.co.jp [10.26.17.202]) by mailsv.nec.co.jp (8.11.6/3.7W-MAILSV-NEC) with ESMTP id h2I1XDq26030; Tue, 18 Mar 2003 10:36:50 +0900 (JST) Original-Received: from mcsss2.ucom.lsi.nec.co.jp (localhost [127.0.0.1]) KAA29671; Tue, 18 Mar 2003 10:33:13 +0900 (JST) Original-Received: from mcspd15.ucom.lsi.nec.co.jp (mcspd15 [10.30.114.174]) with ESMTP id h2I1X9NH015702; Tue, 18 Mar 2003 10:33:10 +0900 (JST) Original-Received: by mcspd15.ucom.lsi.nec.co.jp (Postfix, from userid 31295) id A23E136FF; Tue, 18 Mar 2003 10:33:09 +0900 (JST) Original-To: "Jan D." System-Type: i686-pc-linux-gnu Blat: Foop In-Reply-To: <3E7659B2.2090608@swipnet.se> Original-Lines: 39 Original-cc: emacs-devel@gnu.org 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:12424 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:12424 Hi, "Jan D." writes: > I made some changes, please try them out. I tried today's CVS; it's a bit hard to tell -- maybe the number of full-redraws on each buffer change is less, but the overall feel is roughly the same (painful). > There are some of the redraws that can't easily be eliminated. GDK > (the layer under GTK) does its own event buffering, and releases the > events when the GTK event loop is entered and there are no events to > process. Since Emacs are not using a pure GTK loop, there might be a > very long time before GTK gets a chance to notice this. So Emacs must > force out these events. Ideally they should not generate any more > redraws, just make them happen earlier, but experience shows that we > do get redraws. The thing is that it's not just that emacs redraws _more_ than GTK apps, it's that it redraws _at all_ (by `redraw' here, I'm referring to full redraws). IOW, it's a `0 vs 1' problem, not a `1 vs 2' problem. Gedit, for instance, simply doesn't appear to `redraw' the scrollbar at all when it moves, it simply updates the bar position with no apparent change to the rest of the scrollbar; visually, it doesn't draw much attention. Emacs, on the other hand, seems to clear the whole scrollbar and redraw everything (the thumb and arrow buttons are the most obvious) for ever single update. This full redrawing is _very_ distracting; not only does it slow down emacs redisplay (a lot -- scrolling by holding down a key is very painful), it constantly draws attention to the scrollbar, even when the actual change in the buffer is extremely tiny. Most mystifying... Thanks, -Miles -- Would you like fries with that?