Hi Sergey,

Note that XClearWindow() won't generate any Expose events for the window, so that the contents of it won't be repainted automatically after a call to XWindow.xSetBackground(). Is the code calling this method aware of that and forces the repainting elsewhere? If not, shouldn't we call XClearArea(display, w, 0, 0, 0, 0, True) instead?

--
best regards,
Anthony

On 12/07/2013 03:31 PM, Sergey Bylokhov wrote:
Hello.
Please review the fix for jdk 8.
According to the documentation of XSetWindowBackground [1]:
"Changing the background does not cause the window contents to be
changed. To repaint the window and its background, use XClearWindow."

This error has big history as it was unstable. The behavior changes from
update2update depending on that we generated UPDATE event or not, because
by default Container.update in distinguishing from Container.paint does
clearRect().
After 7090424 we began to generate less paints and a problem became more
visible.

[1] http://www.kodkast.com/unix-command/XSetWindowBackground

Bug: https://bugs.openjdk.java.net/browse/JDK-8001472
Webrev can be found at: http://cr.openjdk.java.net/~serb/8001472/webrev.00

Reply via email to