On Sun, 2013-09-22 at 17:54 +0200, Markus Engel wrote:
set a breakpoint on DrawingItem::render and then press the group button. You can see how the dotted borders and those arrows around the selected items disappear in several steps and then are redrawn. Can it be that this has got to do with parallelization?
I'm not sure what you mean. The handles are xpm from src/pixmaps/handles and are loaded at init. They're display is pretty straightforward in the selection-handler.
Do you think if the item wasn't selected and a property changed, it wouldn't take so many redraws of the same DrawingItem?
If you set the breakpoint immediately before you press the group button, you can watch the grouping happen. Each one of these eight handles is redrawn by one call to "render", and some "dirty" areas are redrawn by the other many calls that happen. It looks to me as if the whole visible area is divided into a lot of small chunks and they are all rendered individually.
I just saw what you mean: This this-pointer is often the same. But that doesn't change the fact that each time render is called, another part of the image is redrawn.
** (inkscape:25349): WARNING **: item: 0x4cb67d0; area: -272x176 ** (inkscape:25349): WARNING **: item: 0x4cb67d0; area: -192x-96 ** (inkscape:25349): WARNING **: item: 0x4cb67d0; area: -192x176 ** (inkscape:25349): WARNING **: item: 0x4cb67d0; area: -160x-80 ** (inkscape:25349): WARNING **: item: 0x4cb67d0; area: -160x176 ** (inkscape:25349): WARNING **: item: 0x4cb67d0; area: -96x-96