I have a cWebQrCode on a page and noticed that whenever something changes on the page, the QR code redraws. I have a label counting down from 30 via timer, so it looks horrible.

In the resize function in WebQrCode.js, a redraw is made if the height or width changes. But it only saves the smallest of the height and width, so unless the clientWidth and clientHeight are identical, it will always think something changed and redraw.

I changed it as below, to fixed it.

resize : function(){
    //  Forward Send (before so base class can add wrapping elements)

    var smallest = Math.min(this._eControl.clientWidth, this._eControl.clientHeight);

    // Redraw when neccessary
    if (this._eQrCode._htOption.width != smallest ||
        this._eQrCode._htOption.height != smallest){

        // For redraw
        this._eQrCode._htOption.height = smallest;
        this._eQrCode._htOption.width = smallest;

        // For direct resize
        this._eQrCode._oDrawing._elCanvas.height = smallest;
        this._eQrCode._oDrawing._elCanvas.width = smallest;

        // Draw the QR code