I'm trying to simulate mouse click on some element through
sendMouseEvent() (I can't use element.dispatchEvent() for some
reasons).
I'm experiencing problems with passing correct parameters.
Say if I have a DOM element how can I find x,y for sendMouseEvent?
My current code is as follows:
function simulateClick(element) {
   // get nsIDOMWindowUtils from content window
   var win = element.ownerDocument.defaultView;
   var req = win.QueryInterface(Ci.nsIInterfaceRequestor);
   var utils = req.getInterface(Ci.nsIDOMWindowUtils);
   var pos = findElementPosition(element);
   var x = pos.x+win.scrollX, y = pos.y+win.scrollY;
   utils.sendMouseEvent("mousedown", x, y, 0, 1, 0);
   utils.sendMouseEvent("mouseup", x, y, 0, 1, 0);
}
function findElementPosition(element) {
    var e = element;
    var pos = {x: 0, y: 0};
    while (e) {
        var x = 0, y = 0, ee = e;
        while (ee) {
            x += ee.offsetLeft;
            y += ee.offsetTop;
            ee = ee.offsetParent;
        }
        pos.x += x;
        pos.y += y;
        e = e.ownerDocument.defaultView.frameElement;
    }
    pos.x += Math.round(element.offsetWidth/2);
    pos.y += Math.round(element.offsetHeight/2);
    return pos;
}
Thanks,
Denis
Is there a reason to not use getBoundingClientRect here?
-Boris