From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: "Jan D." Newsgroups: gmane.emacs.devel Subject: Re: Emacs GTK scroll-bar flickering Date: Tue, 18 Mar 2003 00:26:42 +0100 Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: <3E7659B2.2090608@swipnet.se> 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> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: main.gmane.org 1047943661 3949 80.91.224.249 (17 Mar 2003 23:27:41 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Mon, 17 Mar 2003 23:27:41 +0000 (UTC) Cc: Kai Gro?johann Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Tue Mar 18 00:27: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 18v413-00011H-00 for ; Tue, 18 Mar 2003 00:27:37 +0100 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 18v4Qw-0008Hp-00 for ; Tue, 18 Mar 2003 00:54:22 +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 18v417-0005Zc-0A for emacs-devel@quimby.gnus.org; Mon, 17 Mar 2003 18:27:41 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10.13) id 18v40l-0005Wg-00 for emacs-devel@gnu.org; Mon, 17 Mar 2003 18:27:19 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10.13) id 18v40k-0005WE-00 for emacs-devel@gnu.org; Mon, 17 Mar 2003 18:27:18 -0500 Original-Received: from stubby.bodenonline.com ([193.201.16.94]) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18v40I-0005Gz-00; Mon, 17 Mar 2003 18:26:50 -0500 Original-Received: from swipnet.se (accessno42.bodenonline.com [193.201.16.44]) h2I0JHbL002695; Tue, 18 Mar 2003 01:19:19 +0100 User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030210 X-Accept-Language: en-us, en Original-To: Miles Bader In-Reply-To: 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:12414 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:12414 Miles Bader wrote: > Hmmm, today's CVS seems _slightly_ better -- at least, cursor movement > doesn't cause flickering. However, the behavior when the buffer size > (or window configuration, etc) changes is if anything, worse now: it > looks like whenever the scrollbar gets updated (even by a single > character change in the buffer), it's getting completely cleared and > redrawn about 4 or 5 times, with each redraw being very obvious and slow > (this is certainly exacerbated because I'm using a pixmap theme, but > this theme is not a problem with other GTK apps). > > Something really seems drastically wrong here, since other GTK apps [I'm > using `gedit' for comparison] have basically no flickering, slowdown, or > obviously excessive redraws when they update the scrollbar. It seems as > if emacs is somehow completely regenerating the scrollbar whereas other > apps are using some sort of interface that allows incremental updating > or the like. I made some changes, please try them out. 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. Jan D.