[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs GTK scroll-bar flickering

From: Jan D.
Subject: Re: Emacs GTK scroll-bar flickering
Date: Tue, 18 Mar 2003 06:39:14 +0100

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).

You must have a very complicated theme or a very slow machine, I can't
see this at all.  Are you sure you updated CVS?

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.

Emacs does not "redraw" the scroll bars ever, it just tells GTK what values
to use for the scroll bars.  The desicion to redraw is in GTK entirely.
GTK redraws scroll bars by clearing all and then redraw, which is very
primitive.  Emacs probably changes thumb much more than Gedit, as Gedit
counts lines visible, but Emacs counts characters.  But a good scroll bar
should be able to handle this, as indeed Motif, Xaw3d and others do.

        Jan D.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]