Consider the following:
TCanvas* canvas=0;
TPad* pad=0;
TPaveText* tpt=0;
void make_stuff()
{
canvas=new TCanvas("blah","blah");
// intermediate TPad:
pad=new TPad("blah","blah",0.2,0.2,0.8,0.8);
pad->SetFillColor(2);
pad->Draw();
pad->cd();
//
tpt = new TPaveText(0.2,0.2,0.8,0.8);
tpt->AddText("blah blah blah");
tpt->Draw();
}
void change_stuff()
{
tpt->Clear();
tpt->AddText("new text");
}
After loading this macro into root do:
root [1] make_stuff()
root [2] change_stuff()
root [3] canvas->Modified()
root [4] canvas->Update()
And note that the TPaveText is not updated. If one calls:
root [5] pad->Modified()
then the "new text" is displayed. Also, if one removes the
intermediate TPad and Draw()s directly into the TCanvas [1]-[4] work
as expected.
Is this a bug, or must I keep track of all sub TPads and explicitly
call Modified() and Update() on them?
-Brett.
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:45 MET