Created attachment 68741 [details]
Test *.ui file to reproduce the bug. Use oxygen style, hover the splitter.
Version: 4.8 (using KDE 4.8.0)
See bug #290879. That bug is different and closed, but it has some information on this one.
This is not an oxygen style bug.
Steps to Reproduce:
Download attached test *.ui file.
Open it with QtDesigner.
View in the oxygen style.
Hover the splitter.
There are visual glitches: black rectangles near the mouse, that dissapear when the mouse is removed from the splitter.
No visual glitches.
A simular issue was fixed for kcapacitybar by this commit: https://projects.kde.org/projects/kde/kdelibs/repository/revisions/48e090
It looks like an Oxygen bug (in this case?)
The plot widget does a "fillRect(rect(), backgroundColor());" in its paintEvent, so there cannot be any corruption caused by the widget. Why Qt fails to send the paintEvent when used with the splitter hovering, that I don't know.
If it cannot be fixed in Oxygen, we probably have to remove the NoSystemBackground attribute from the plot widget, but it had been added for better performance with frequent updates.
I'll look into it in more details.
PS: note that it also happens with BeSpin
(ok: both codes for splitter are quite similar)
Ouch, I thought this is about kdelibs' KPlotWidget, but it is about KSignalPlotter, which is from ksysguard. Have to check the code there, before blaming Oxygen again ;)
Okey, GraphWidget also sets NoSystemBackground, in addition to PaintOnScreen. I remember a blog where it was explained that adding those greatly increased performance. Maybe we should benchmark again with recent Qt (raster backend etc.).
I will leave it to ksysguard maintainers to decide.
I can still confirm it on KDE: 4.8.3 + Qt: 4.8.1.
Still happens with KDE: 4.9.2 + Qt: 4.8.3.
Why is this still UNCONFIRMED, btw?
Still happens in KDE: 4.10.90 on Qt: 4.8.5.
Why is this still UNCONFIRMED?
If you have so much spare time , you are invited to take over maintainership for KSysGuard.
First you confirm where the actual bug is, suggest a patch, benchmark the changes, and then commit them.