From kde-core-devel Sun Feb 03 13:49:06 2008 From: "Roman Jarosz" Date: Sun, 03 Feb 2008 13:49:06 +0000 To: kde-core-devel Subject: [PATCH] Fix KHTML redrawing problems Message-Id: X-MARC-Message: https://marc.info/?l=kde-core-devel&m=120204666623056 MIME-Version: 1 Content-Type: multipart/mixed; boundary="------------M1GTZKHzE5ZsE4F3WwyiID" ------------M1GTZKHzE5ZsE4F3WwyiID Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 7bit Hi, KHTML has some really annoying redrawing bugs when the view widget is resized before paint event. This is because KHTMLView assumes for static widgets that render widget is always at position 0,0, but for instance when the scroll bars are about to be shown then QScrollArea updates render widget and changes its position if it's needed. (in QScrollAreaPrivate::updateScrollBars(), the move is called in QScrollAreaPrivate::updateWidgetPosition() ) When this happens KHTMLView sets it back to 0,0 but KHtmlView isn't changing it back on each occasion and then the paint position is wrong. This patch fix it by moving the render widget back to 0,0. This bug affects Kopete. Can I commit this? Regards, Roman Jarosz ------------M1GTZKHzE5ZsE4F3WwyiID Content-Disposition: attachment; filename=fixkhtml2.diff Content-Type: application/octet-stream; name=fixkhtml2.diff Content-Transfer-Encoding: Base64 SW5kZXg6IGtodG1sdmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2h0 bWx2aWV3LmNwcAkocmV2aXNpb24gNzY5OTQ4KQorKysga2h0bWx2aWV3LmNwcAko d29ya2luZyBjb3B5KQpAQCAtNDg1LDYgKzQ4NSwxMyBAQAogICAgICAgLy8gbm90 IHBlcm1pdHRpbmcgdXMgdG8gZm9yd2FyZCBpdCB1cCB0aGUgcGFydCBoaWVhcmNo eSBpbiBvdXIgZHJhZ0VudGVyRXZlbnQsCiAgICAgICAvLyBldGMuIGhhbmRsZXJz CiAgICAgICByZXR1cm4gUVdpZGdldDo6ZXZlbnQoZSk7CisgICAgY2FzZSBRRXZl bnQ6OlN0eWxlQ2hhbmdlOgorICAgIGNhc2UgUUV2ZW50OjpMYXlvdXRSZXF1ZXN0 OiB7CisgICAgICAgIGJvb2wgcmV0ID0gUVNjcm9sbEFyZWE6OmV2ZW50KGUpOwor ICAgICAgICBpZiAoZC0+c3RhdGljV2lkZ2V0ICYmIHdpZGdldCgpLT5wb3MoKSAh PSBRUG9pbnQoMCwwKSkKKyAgICAgICAgICAgIHdpZGdldCgpLT5tb3ZlKDAsMCk7 CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQogICAgIGRlZmF1bHQ6CiAgICAg ICByZXR1cm4gUVNjcm9sbEFyZWE6OmV2ZW50KGUpOwogICAgIH0KQEAgLTIxMDgs NiArMjExNSwxMiBAQAogICAgIGlmIChvID09IHZpZXcpIHsKICAgICAgICAgaWYg KHdpZGdldEV2ZW50KGUpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg ICAgIGVsc2UgaWYgKCBlLT50eXBlKCkgPT0gUUV2ZW50OjpSZXNpemUgKSB7Cisg ICAgICAgICAgICBib29sIHJldCA9IFFTY3JvbGxBcmVhOjpldmVudEZpbHRlcihv LCBlKTsKKyAgICAgICAgICAgIGlmIChkLT5zdGF0aWNXaWRnZXQgJiYgdmlldy0+ cG9zKCkgIT0gUVBvaW50KDAsMCkpCisgICAgICAgICAgICAgICAgdmlldy0+bW92 ZSgwLDApOworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQogICAg IH0gZWxzZSBpZiAoby0+aXNXaWRnZXRUeXBlKCkpIHsKIAlRV2lkZ2V0ICp2ID0g c3RhdGljX2Nhc3Q8UVdpZGdldCAqPihvKTsKICAgICAgICAgUVdpZGdldCAqYyA9 IHY7Cg== ------------M1GTZKHzE5ZsE4F3WwyiID--