Bug 286140 - oxygen-gtk causes banshee fail to start
Summary: oxygen-gtk causes banshee fail to start
Status: CLOSED FIXED
Alias: None
Product: Oxygen
Classification: Plasma
Component: gtk2-engine (show other bugs)
Version: unspecified
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Hugo Pereira Da Costa
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-11-08 22:24 UTC by Jekyll Wu
Modified: 2012-05-15 04:09 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jekyll Wu 2011-11-08 22:24:11 UTC
Version:           unspecified (using KDE 4.7.3) 
OS:                Linux

When oxygen-gtk is in use, banshee fails to start. It complains :

Info  06:17:31.647] Running Banshee 2.2.1: [ArchLinux (linux-gnu, i686) @ 2011-11-02 03:03:09 UTC]
The program 'Banshee' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadAccess (attempt to access private resource denied)'.
  (Details: serial 460 error_code 10 request_code 155 minor_code 1)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

That problem does not exist when oxygen-gtk is not in use. 

And it also happens in Fedora 16 and Ubuntu 11.10.


Reproducible: Always


Actual Results:  
 

Expected Results:  

 

banshee-2.2.1
oxygen-gtk-git
Comment 1 Hugo Pereira Da Costa 2011-11-09 02:24:20 UTC
Damn. I can reproduce and this is a "regression". This was not happening in the past, I am sure of that ... investigating.
Comment 2 Hugo Pereira Da Costa 2011-11-09 02:47:10 UTC
Ruslan. The crash is due to the inner shadow hack (argh).
I'll try to find a way of adding an exception to the guilty scrolled windows. 
Feel free to investigate on your side too.
Comment 3 Jan Hübner 2011-11-09 18:30:28 UTC
This occurs aswell in Funtoo unstable, 4.7.3, but the bug annoys me quite some now, because I really like the oxygen-gtk look.
Comment 4 Ruslan Kabatsayev 2011-11-09 18:32:45 UTC
To work around this problem, you can set ENABLE_INNER_SHADOW_HACK to 0 (via cmake "-D" argument)
Comment 5 Hugo Pereira Da Costa 2011-11-09 22:02:42 UTC
@Jan
technically, this is an application bug, not an oxygen-gtk bug.
Or not a bug at all :(
The fact is: the feature that we use and causes the bug (drawing on the backing store directly) is officially supported by gtk, and works well with all native gtk widgets. Meaning that there is something fishy with the custom widgets that both applications that you mention are using ...
Had no time to investigate further so far, but will do.

(PS: for some reason, Banshee also prevents any use of ARGB colormaps, which notably forbids oxygen-gtk to install kwin shadows on its drop down menus, draw nice rounded corners, etc. Basically, oxygen-gtk cannot look good with banshee, and this is because of the app, not us).
Comment 6 Hugo Pereira Da Costa 2011-11-09 22:07:44 UTC
PS: 
maybe it would actually be good to report these issues also to the applications themselves, with a link to here, for them at least to be aware of the issue, and possibly to fix. (our fix will have to look less nice than theirs, basically by disabling some features that make oxygen-gtk look good). 

Especially to Funtoo, in case the "stable version" was working fine. 
(pointing to some sort of regression there).
Comment 7 Hugo Pereira Da Costa 2011-11-09 22:09:38 UTC
"This occurs aswell in Funtoo unstable"
I'm confused. Funtoo is a distribution, right ? 
Does that mean that the bug occur with all applications shiped by funtoo, or just the version of banshee that they ship ?
Comment 8 Jekyll Wu 2011-11-10 02:59:11 UTC
I have reported this to banshee developers.
https://bugzilla.gnome.org/show_bug.cgi?id=663743
Comment 9 Jan Hübner 2011-11-10 07:14:54 UTC
No, it only happens with banshee, all other applications look good and work happily. If it's a problem with Funtoo stable, I don't know.

Funtoo is a project from Gentoo founder Daniel Robbins, so it's almost the same as Gentoo.
Comment 10 Hugo Pereira Da Costa 2011-11-10 13:34:45 UTC
Found the issue, I think.
gdk_window_set_composited is explicitely said not be called on top level windows, which is apparently what happens with banshee (based on gdk_window_get_type()).
Patch will follow shortly. Will test for a while on master against possible regression in other apps.
Comment 11 Hugo Pereira Da Costa 2011-11-10 13:51:22 UTC
Git commit c3afaa3814eee7883e6e7ed0c8d53ba29d328171 by Hugo Pereira Da Costa.
Committed on 10/11/2011 at 14:43.
Pushed by hpereiradacosta into branch 'master'.

only set compositing on windows of type GDK_WINDOW_CHILD
CCBUG: 286140

M  +4    -2    src/animations/oxygeninnershadowdata.cpp

http://commits.kde.org/oxygen-gtk/c3afaa3814eee7883e6e7ed0c8d53ba29d328171
Comment 12 Hugo Pereira Da Costa 2011-11-10 13:53:49 UTC
That fixes it here.
Please give a shot at latest oxygen-gtk (from master branch)
I'll backport in a couple of days (and before tagging v1.1.5)
Comment 13 Jan Hübner 2011-11-13 10:06:34 UTC
Works for me, thank you very much