TCanvas::Divide leaves unfilled margin

I’ve found that when I divide a canvas w/o margins between the pads the pads don’t use up all the space on the canvas but leave an area on the top and on the right. I’ve attached an example together with the script that produces it.

It seems this is due to the fact that the pads don’t get the same size, the upper pads have a smaller height than they should have and the pads on the right have too small width.

Is there any way to get rid of the additional space and make the pads all the same size?
test.eps (3.24 KB)
eps.C (433 Bytes)

A brutal fix …
canvas->Divide(2, 2, 1E-11, 1E-11); // BOTH, “xmargin” and “ymargin”, MUST BE > 0

(I assume Olivier will comment on this issue in a more detailed way -> especially, why pads are not equal in size when any one of “[x|y]margin” is 0. Actually, each pad has a different size in these cases. I can understand that there’s some free space on top for the canvas’es title, but what’s the purpose of the free space on the right side?)

Divide() was implemented a long time ago and the way it is done is rather primitive. This question of “not equal” size pad has been ask already. In fact the Pad are equal size but because of the margins the frames inside are not. I am sure you can find some examples on this forum making equal size Frames. Here is a macro I wrote to make equal size Frame.
div2.C (1.55 KB)