Bug 506671

Summary: GNOME/Gtk scrollbar corruption with fedora-gnome-theme
Product: [Fedora] Fedora Reporter: Michael Schwendt <bugs.michael>
Component: cairoAssignee: Behdad Esfahbod <behdad>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 11CC: behdad, bernie+fedora, jon.dufresne, martin.sourada, mclasen
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-06-28 09:07:13 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Description Flags
screenshot 1024 x 768 - corruption in GIMP
Xorg.0.log - ATI Technologies Inc RV280 [Radeon 9200 PRO] none

Description Michael Schwendt 2009-06-18 05:04:08 EDT
Created attachment 348398 [details]

Please reassign this to the right component in case I've chosen the wrong one.


The larger the size of a vertical scrollbar, the more damaged its appearance is with the default Fedora 11 theme settings. 

This is 100% reproducible with fedora-gnome-theme and gtk-nodoka-engine, but not reproducible with other themes+engines. Simply choosing a different theme or a different engine makes it go away.
Comment 1 Martin Sourada 2009-06-18 18:59:47 EDT
Thanks for reporting the issue. I cannot reproduce it though. What's your video driver? Can you try smaller screen resolutions (I don't have access to bigger than 1280x800 and even if I make the evolution bigger than screen, the scrollbar is still drawn perfectly correct), different video drivers, turning on/off compositing and/or KMS? I haven't checked the code yet for possible bugs, but seeing the attachment it looks like the problem might be somewhere else, but on the other hand you say it works with other engines, so it'll be probably hard to pinpoint the cause... 

Hm... also it's interesting that it seems like only the fill is drawn incorrectly - the border at the bottom seems drawn properly, as well as the handle in the middle... So perhaps some specific usage of cairo that exploits some bug elsewhere. I'll look into it more throughout probably tomorrow.
Comment 2 Martin Sourada 2009-06-19 05:36:58 EDT
One another question that springs to mind (although the answer is sorta implied by the original report, but I want to be sure) after inspecting the source code is: are you able to reproduce for horizontal scrollbars or is it just the vertical ones?
Comment 3 Michael Schwendt 2009-06-19 05:51:16 EDT
Just vertical scrollbars here so far.

And just for the record, it's not just me who sees it:
Comment 4 Michael Schwendt 2009-06-19 05:57:13 EDT
With regard to comment 1, I need to disappoint you. Sorry. It's beyond my time to spend a lot of time on testing. This is 1280x1024 with xorg-x11-drv-ati.

My work-around is to use the nice "Glider" theme. If I customise it and switch to "Nodoka" controls, the vertical scrollbar corruption reappears.
Comment 5 Michael Schwendt 2009-06-19 08:59:24 EDT
Reproducible with 1024 x 768.

1. Start The GIMP.
2. Use "File > Open..." dialog.
3. Click middle vertical scrollbar of folder list.
Comment 6 Michael Schwendt 2009-06-19 09:18:02 EDT
Created attachment 348661 [details]
screenshot 1024 x 768 - corruption in GIMP
Comment 7 Michael Schwendt 2009-06-20 02:30:52 EDT
It isn't specific to Nodoka.

The controls with the name "Inverted" (based on Clearlooks engine) is the only other one of default gnome-themes/gtk2-engines that causes vert.scrollbar corruption, too.
Comment 8 Michael Schwendt 2009-06-20 02:54:34 EDT
$ sudo rpm -e gtk-nodoka-engine --nodeps

Change theme to "Clearlooks".
Customise controls to "Inverted".
Problem reproducible.

Does that help with narrowing it down?
Comment 9 Martin Sourada 2009-06-20 03:13:44 EDT
(In reply to comment #8)
> $ sudo rpm -e gtk-nodoka-engine --nodeps
> Change theme to "Clearlooks".
> Customise controls to "Inverted".
> Problem reproducible.
> Does that help with narrowing it down?  

Basically this now boils down to comparing now what is different in clearlooks GLOSSY (IIRC the name for the default clearlooks style) style from clearlooks INVERTED and nodoka (of course, more examples of working and not working engines is better). Reassigning to gtk2-engines seems to be a bad approach though, although it's a good idea to let mclasen know that their INVERTED clearlooks style triggers the issue as well. I have yet unconfirmed belief that some specific cairo usage triggers a bug in the video driver.
Comment 10 Martin Sourada 2009-06-20 03:29:59 EDT
(In reply to comment #9)
> Basically this now boils down to comparing now what is different in clearlooks
> GLOSSY (IIRC the name for the default clearlooks style) style from clearlooks
Actually the default one, i.e. the one used by "Clearlooks" gtk theme, is GUMMY... GLOSSY is used in "Glossy" gtk theme (and CLASSIC in ClearlooksClassic)... Can you try these two (i.e. Glossy and ClearlooksClassic) as well?
Comment 11 Michael Schwendt 2009-06-20 03:56:12 EDT
"ClearlooksClassic" controls also cause corruption. I've missed it before probably because of its name.;)  I've gone through all controls once more. Reproducible with:

* ClearlooksClassic
* Inverted
* Nodoka
Comment 12 Martin Sourada 2009-06-20 04:06:49 EDT
Hm... after comparing the different codes, the only difference that seems that
ClearlooksClassic, Inverted and Nodoka has common compared to Clearlooks, is that they prepare bigger pattern (gradient) than is visible, but I cannot imagine how this could cause
the issue you are seeing...

Can you try this gtk theme?

It triggers different drawing paths for nodoka by not using gradients at all.
Comment 13 Michael Schwendt 2009-06-20 04:13:52 EDT
Not reproducible with NodokaFLAT controls.

Downgrades of the xorg ati driver and gtk2-engines to releases from early April have been fruitless.
Comment 14 Martin Sourada 2009-06-20 15:28:49 EDT
(In reply to comment #13)
> Not reproducible with NodokaFLAT controls.
Thanks, this confirms what I expected.

> Downgrades of the xorg ati driver and gtk2-engines to releases from early April
> have been fruitless.  
Downgrade of gtk2-engines is irrelevant here, AFAIK they haven't changed the scrollbars drawing code for some time as well. As for the driver, it either means that the bug was already there in April, and if not, than it means that either some other component in-between broke or that by April there was different configuration of various video driver features that didn't exploit this.

So, for now, summarizing what is common to all the cases and reassigning one step above (cairo), but I guess the problem is deeper than that.
* Probably happens on ATI cards and not on Intel cards
* Seems like the steps needed to trigger it is this cairo sequence:
 1. init cairo
 2. rotate by pi/2 or swap axes (does not seem to occur otherwise)
 3. translate (this one is probably irrelevant, but I didn't tested it)
 4. create linear gradient pattern, bigger than intended object that will be drawn (maybe needs to be horizontal as seen on screen when drawn)
 5. set rectangle to be drawn, vertically (as is seen on screen when drawn) long
 6. set the pattern for usage
 7. draw fill
Comment 15 Matěj Cepl 2009-11-04 20:13:27 EST
Reporter, could you please attach your /var/log/Xorg.0.log to this bug? I would love to know more about your hardware, whether bug 520910 isn't a duplicate here.

Thank you
Comment 16 Michael Schwendt 2009-11-05 03:59:53 EST
Created attachment 367586 [details]
Xorg.0.log - ATI Technologies Inc RV280 [Radeon 9200 PRO]
Comment 17 Michael Schwendt 2009-11-05 04:07:35 EST
And actually, booting with "nomodeset" also fixes this. So, the bz component it has been assigned to is wrong.
Comment 18 Bug Zapper 2010-04-27 11:03:00 EDT
This message is a reminder that Fedora 11 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 11.  It is Fedora's policy to close all
bug reports from releases that are no longer maintained.  At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '11'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 11's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 11 is end of life.  If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora please change the 'version' of this 
bug to the applicable version.  If you are unable to change the version, 
please add a comment here and someone will do it for you.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events.  Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here: 
Comment 19 Bug Zapper 2010-06-28 09:07:13 EDT
Fedora 11 changed to end-of-life (EOL) status on 2010-06-25. Fedora 11 is 
no longer maintained, which means that it will not receive any further 
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.