Occasional incorrect behavior from Invalidate()
|Reported by:||anevilyak||Owned by:||stippi|
|Has a Patch:||no||Platform:||All|
In the Debugger's textview component I've been observing some odd behavior where Invalidate() sometimes appears to be ignored. To be exact I'm using the BRegion version of Invalidate(), and the best I can describe it is, while selecting text, if the selection region is small (i.e. a few characters/words), the redraw requested does not appear to happen, though for instance switching workspaces and back will show that the region is indeed correct as at that point the selection is drawn where expected. However, once the region is made large enough, by say selecting several lines worth, it suddenly Invalidates correctly, and then continues to do so afterwards regardless of size. Adding a Sync() after the Invalidate() call causes the expected correct behavior in all cases but AFAIK this shouldn't be necessary (c.f. mailing list discussion re hrev31724). Note that the Sync() is currently present in the source tree, so you will need to comment it out in order to view this behavior (src/apps/debugger/gui/team_window/SourceView.cpp line 1109).