Sounds good. I'm fine with the fix then.
--
best regards,
Anthony
On 12/06/2013 04:28 PM, Sergey Bylokhov wrote:
On 06.12.2013 16:15, Anthony Petrov wrote:
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?
XComponent.setBackground() calls repaint at the end, which paint all
necessary staff, except background.
sequence of calls:
XComponent.setBackground()
XWindow->xSetBackground()
XlibWrapper.XSetWindowBackground()
XlibWrapper.XClearWindow
XComponent.repaint()
--
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