Bug 294398

Summary: Visual glitch when slider is in some positions
Product: [Plasma] Oxygen Reporter: Ruslan Kabatsayev <b7.10110111>
Component: gtk3-engineAssignee: Hugo Pereira Da Costa <hugo.pereira.da.costa>
Status: CLOSED FIXED    
Severity: normal CC: b7.10110111, hugo.pereira.da.costa, web
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In:

Description Ruslan Kabatsayev 2012-02-18 23:30:37 UTC
Version:           unspecified
OS:                Linux

Screenshot: http://simplest-image-hosting.net/png-0-screenshot-02192012-032535-am
See some elements not drawn, others have text above them (progressBarEntry wrong rendering is unrelated).

Reproducible: Always

Steps to Reproduce:
1. Start oxygen-gtk3-demo, with any gtk3 version, namely 3.3 and 3.2
2. Go to "Sliders"
3. Move any slider to the top/left border
4. Move it 1px from the border

Actual Results:  
Glitch appears

Expected Results:  
Should render normally

This looks like GTK bug, but still, it might be a bug in our cairo usage or something else.
Comment 1 Hugo Pereira Da Costa 2012-03-01 11:25:41 UTC
Git commit a701938d25e54c0ecfb3cd09a91c77b9c16e04e5 by Hugo Pereira Da Costa.
Committed on 01/03/2012 at 12:23.
Pushed by hpereiradacosta into branch 'gtk3'.

Fix unbalanced cairo_context save() restore(), by moving up exit condition.

M  +3    -3    src/oxygenstyle.cpp

http://commits.kde.org/oxygen-gtk/a701938d25e54c0ecfb3cd09a91c77b9c16e04e5
Comment 2 Hugo Pereira Da Costa 2012-03-01 11:27:02 UTC
That fixes it here. (and makes sense).
I believe the context got corrupted due to imbalanced save() restore() calls.
(basically the next restore() in the loop would not roll-back to the right state, and corruptions would keep going on until the context is discarded).

So closing.
Don't hesitate to re-open if bug is still present.
Comment 3 Ruslan Kabatsayev 2012-03-01 15:11:59 UTC
You're right. I confirm that it's fixed.