Bug report #10441

If layer has labels it is always refreshed when activating/deactivating any other layer

Added by Giovanni Manghi over 5 years ago. Updated 8 months ago.

Status:Open
Priority:Normal
Assignee:-
Category:Map Canvas
Affected QGIS version:3.7(master) Regression?:No
Operating System: Easy fix?:No
Pull Request or Patch supplied:No Resolution:
Crashes QGIS or corrupts data:No Copied to github as #:18853

Description

Subject says it all, seems not necessary and it happens also with "render caching" active.

History

#1 Updated by Giovanni Manghi over 5 years ago

  • Priority changed from Normal to High

#2 Updated by Giovanni Manghi almost 3 years ago

  • Priority changed from High to Normal

#3 Updated by Giovanni Manghi over 2 years ago

  • Easy fix? set to No
  • Regression? set to No

#4 Updated by Giovanni Manghi 8 months ago

  • Affected QGIS version changed from master to 3.7(master)

#5 Updated by Alexey T 8 months ago

#21472 is also related.

If a layer with labels is "heavy" and rendering it takes significant amount of time, then it is very difficult to edit any other layer because of refreshes.

#6 Updated by Nyall Dawson 8 months ago

This is because the labelling is generated for the entire map, not layer by layer. So labels from another layer can change the position of labels in every other labelled layer (due to collision avoidance).

If you toggle any labelled layer, all remaining labelled layers need to be completely refreshed in order to calculate new positions of the remaining map labels.

There may be particular corner cases where this can be avoided, but in general I do not see any way to avoid this.

#7 Updated by Alexey T 8 months ago

But vectors and rasters are rendered independently of lables. Results can be cashed. So only lables colud be redrawn on canvas refresh.

Also available in: Atom PDF