[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Text selections flicker unnecessarily
From: |
Nicola Pero |
Subject: |
Re: Text selections flicker unnecessarily |
Date: |
Wed, 22 May 2002 13:12:24 +0100 (BST) |
> Hi,
>
> When highlighting text GSSimpleLayoutManager calls NSHighlightRect() for
> each line of selected text. Since each NSHighlightRect() call flushes
> the graphics this is quite slow and flickers a lot. I've attached a
> patch that changes GSSimpleLayoutManager to use PScompositerect instead.
> I'm not sure that NSHighlightRect() should really flush, but other
> callers seem to depend on it.
I changed NSHighlightRect() not to flush the window.
Many callers (also in NSSplitView and in NSTableView) need to perform
multiple highlight rects and have the flushwindow performed only after the
last one ... in some cases the manual flush window would be wasteful even
after the last one since it would already done automatically later.
If in all these cases we start highlighting manually using PS composite
operators (as was already happening in NSSplitView!) to avoid the
flushWindow, then why having the NSHighlightRect() function at all. :-)
So I changed it not to flush, and updated callers to flush manually when
appropriate (having the flush done manually in the callers also allow more
control on when the flush is done, and maybe better optimizations in some
cases by having the minimal number of flushes as needed).
Thanks for pointing the thing out! We definitely need to remove some
useless redrawing and flickering.