Hi Andi,
I think we really need some concrete example reproducing the problem to figure out what’s wrong. I started from the small example I sent some time ago and I made the following one. In that example I do two Divide(), one with (1,2) and the other with (2,2). To be sure we compare the same things I made the canvas divided in (2,2) twice higher than the one divided in (1,2). Seems to me what I get is correct (same optical effect). Starting from this example, can you reproduce the wrong behavior you get ?
{
TCanvas *c1 = new TCanvas("c1", "c1",0,0,400,200);
c1->Divide(2,1);
c1->cd(1);
TH1 *h1 = new TH1F("h1","h1",100,0,1);
h1->GetXaxis()->SetTitle("X Title 1");
h1->GetYaxis()->SetTitle("Y Title 1");
h1->Draw("");
c1->cd(2);
TH1 *h2 = new TH1F("h2","h2",100,0,1);
h2->GetXaxis()->SetTitle("X Title 2");
h2->GetYaxis()->SetTitle("Y Title 2");
h2->Draw("");
TCanvas *c2 = new TCanvas("c2", "c1",0,550,400,400);
c2->Divide(2,2);
c2->cd(1);
TH1 *h1 = new TH1F("h1","h1",100,0,1);
h1->GetXaxis()->SetTitle("X Title 1");
h1->GetYaxis()->SetTitle("Y Title 1");
h1->Draw("");
c2->cd(2);
TH1 *h2 = new TH1F("h2","h2",100,0,1);
h2->GetXaxis()->SetTitle("X Title 2");
h2->GetYaxis()->SetTitle("Y Title 2");
h2->Draw("");
c2->cd(3);
TH1 *h3 = new TH1F("h3","h3",100,0,1);
h3->GetXaxis()->SetTitle("X Title 3");
h3->GetYaxis()->SetTitle("Y Title 3");
h3->Draw("");
c2->cd(4);
TH1 *h4 = new TH1F("h4","h4",100,0,1);
h4->GetXaxis()->SetTitle("X Title 4");
h4->GetYaxis()->SetTitle("Y Title 4");
h4->Draw("");
}