This patch seems to have made it into the QCubed fork. However, it doesn't seem to work for everything.
I've got quite a few Dialog Boxes which contain QCalendars. They render exactly the number of pixels low and right as the distance between the top left corner of the browser window the top left corner of the Dialog Box.
To fix it, in the calendar.js, I've replaced:
This:
var strPositionArray = this.wrapper.getAbsolutePosition();
this.calendarPane.style.left = strPositionArray['x'] + "px";
this.calendarPane.style.top = strPositionArray['y'] + "px";
with this:
this.calendarPane.style.left = this.dateTimeTextBox.wrapper.offsetLeft + "px";
this.calendarPane.style.top = this.dateTimeTextBox.wrapper.offsetTop + this.dateTimeTextBox.offsetHeight + "px";
Caveats:
- I have only tested this to work in the most recent Safari and Firefox.
- This doesn't fix the underlying problem with getAbsolutePosition, which seems to be including the position of some wrapper element it shouldn't.
- This doesn't fix the problem of the QCalendar staying in the same relative place in the browser window if the user resizes when the QCalendar is Visible.
- This needs to be fixed in several places if you use Shannon Pekary's QDateTimeComposite. (http://www.qcodo.com/downloads/item.php/192)