Tiling gaps are wrong in Duplicated/Copied objects if physical units are used (vs "px")

Summary:

The copy of an item has incorrect Gap X and Gap Y values when:

  • An object uses the Tiling Path Effect,
  • The effect uses physical units mm, pt, cm rather than px units.

Note that there may be more instances where this conversion bug happens, I haven't tested it exhaustively.

Steps to reproduce:

  • Either use the attached file or:
    • Create a new document, add a item (circle, box, etc)
    • Add a Path Effect of Tiling,
    • Add nonzero Gap X and Gap Y values,
    • Change the units from px to a physical dimension, eg: mm.
  • Duplicate the object with Ctrl-C and Ctrl-V or with Ctrl-D.
  • In the attached file, the circle (mm) demonstrates the problem while the rectangles (px) work okay.
  • The circles in the sample file (at the top) were duplicated; the result is shown below:

image

What happened?

  • The copy has the wrong values for the gaps.

What should have happened?

Values should be preserved correctly.

Sample attachments:

bug-report.svg

Version info

Inkscape 1.4 (e7c3feb100, 2024-10-09)

                      Compile  (Run)
    GLib version:     2.80.3
    GTK version:      3.24.43 (3.24.43)
    glibmm version:   2.66.7
    gtkmm version:    3.24.9
    libxml2 version:  2.12.8
    libxslt version:  1.1.42
    Cairo version:    1.18.0 (1.18.0)
    Pango version:    1.54.0 (1.54.0)
    HarfBuzz version: 8.5.0 (8.5.0)

    OS version:       Fedora Linux 40 (Forty)