|
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.
[Prev in Thread] | Current Thread | [Next in Thread] |