TArrow "arrowsize" not properly cloned

The arrow head of a TArrow changes size when cloning a canvas.

Here is a minimal example showing the problem:

#include "TCanvas.h"
#include "TArrow.h"

void arrow_minimal() {

  auto c1 = new TCanvas("c1","c1");
  c1->DrawFrame(0,0,10,10);

  auto arrow = new TArrow(5,8,5,2,0.05,">");
  arrow->Draw();

  auto c2 = new TCanvas("c2","c2");
  c2->Divide(3,3);
  c2->cd(5);
  c1->DrawClonePad();

}

The arrow in the first canvas looks like:

After cloning:

In the first canvas, the arrow head ranges vertically from 2 to ~2.6.
In the second canvas, the arrow head ranges vertically from 2 to ~4.6.

However, after cloning, I would like the arrow head to have the same initial range (2 to ~2.6). How do I achieve this? I found a thread (TArrow problem) which seems to have a similar problem as mine, but I did not find it useful.

Relevant Information:
ROOT Version: 6.04.02
Platform: 3.16.0-4-amd64 GNU/Linux
Compiler: gcc version 4.9.2 (Debian 4.9.2-10+deb8u1)

The arrow size is not relative to the user coordinates. It is like markers. It is some absolute size not connected to the coordinates’ system. This allows to have the same arrow size independently of the pad coordinate system.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.