Home | News | Documentation | Download

TCanvas::WaitPrimitive() functionality changed in 6.08/02

I have an application that detects mouse events in a TCanvas window to allow users to select certain features in ROOT histograms. The problem appears to be due to a change in the functionality of TCanvas::WaitPrimitive(). In ROOT version 5.34/30, when TCanvas::WaitPrimitive() is called without options, ROOT waits until a double click is detected before continuing. In ROOT version 6.08/02, this functionality appears to have stopped working. I have created a short macro that demonstrates the problem.

void Wait() {
  TCanvas *c1 = new TCanvas("c1");
  TH1I *h1 = new TH1I("h1","First Histogram",100,1,100);
  TH1I *h2 = new TH1I("h2","Second Histogram",100,1,100);
  h1->Draw();
  c1->Update();
  c1->WaitPrimitive();
  h2->Draw();
}

The macro simply creates two histograms, draws the first histogram and then waits for a double click on the Canvas before drawing the second historgram. This works as expected in 5.34/30 but not in 6.08/02. In the most recent version, TCanvas::WaitPrimitive() appears to be ignored and the second histogram is drawn straight away. Has something changed with the way TCanvas::WaitPrimitive() is implemented?

I am working with macOS 10.12 but the problem also occurs on a SL7 Linux box.

Thanks for your help,

Peter

I see it too.
I will check.
thanks.

Now fixed in the ROOT master. Thanks for reporting.