Selection by dragging isn't always snappy, either. Only when I select the title frame as well - if I select everything inside the frame, its slow again. This tells me it's about invalidating small bits of the canvas, which is expensive - if everything is invalidated early (for example title frame bounding box includes all remaining objects), rest of invalidations are "cache hits" and don't incur penalty of data structure management.
I'll try to profile this, but I feel the performance hit comes from internal gtk spatial data structure for tracking invalidated rectangles.
Selection by dragging isn't always snappy, either. Only when I select the title frame as well - if I select everything inside the frame, its slow again. This tells me it's about invalidating small bits of the canvas, which is expensive - if everything is invalidated early (for example title frame bounding box includes all remaining objects), rest of invalidations are "cache hits" and don't incur penalty of data structure management.
I'll try to profile this, but I feel the performance hit comes from internal gtk spatial data structure for tracking invalidated rectangles.