Bug 282867 - corrupted xfrun4 pull-down list with oxygen-gtk
Summary: corrupted xfrun4 pull-down list with oxygen-gtk
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
Depends on:
Reported: 2011-09-26 20:59 UTC by David Rosenstrauch
Modified: 2012-05-15 04:10 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Note You need to log in before you can comment on or make changes to this bug.
Description David Rosenstrauch 2011-09-26 20:59:00 UTC
Version:           unspecified (using KDE 4.7.1) 
OS:                Linux

While testing a fix for https://bugs.kde.org/show_bug.cgi?id=282057, I discovered a similar problem, whereby oxygen-gtk appears to be painting pull-down lists in black text on black background, making the text unreadable.

Reproducible: Always

Steps to Reproduce:
1. Set XFCE to use oxygen-gtk.
2. run xfrun4
3. begin typing a few letters of a command, for which multiple possible choices of application to run exist (e.g., "xf" are the first 2 letters of both xfce4-screen-shooter and xfburn)

Actual Results:  
See http://www.darose.net/oxygen-gtk-xfce-run-dialog-broken.png

Expected Results:  
See http://www.darose.net/oxygen-gtk-xfce-run-dialog-previously-working.png

(Generated when using qtcurve, instead of oxygen-gtk
Comment 1 Ruslan Kabatsayev 2011-09-26 21:00:25 UTC
What's your color theme? I can't reproduce with Obsidian Coast.
Comment 2 Hugo Pereira Da Costa 2011-09-27 05:57:00 UTC
I am able to reproduce the black background, and to me it rather seems that instead of a color mismatch issue, the entire menu is corrupted. When trying to select items in the menu I get pieces of the selection rect, ill-places and no item text at all.

Also with oxygen colorscheme, the menu is corrupted.

David, can you confirm ? 

Note: from the QtCurve screenshot, it seems the menu is some custom thing, and not the usual combobox one (see how it is ill-placed with respect to the entry).
Maybe that's related ...
Comment 3 Hugo Pereira Da Costa 2011-09-27 06:17:19 UTC
Other comboboxes, such as in /usr/bin/xfce4-settings-manager, display tab, comboboxes on the right, behave just fine. (David, confirm ? yes/no)
So to me this is really related to xfrun4 and not a general issue.
Comment 4 Ruslan Kabatsayev 2011-09-27 06:18:41 UTC
Aha. I thought it was only my radeon issue with corrupted list, but it looks like it's not. I can't reproduce on xfrun4-4.6, but can on xfrun4-4.8.
This isn't combobox list, and isn't intended to be - it's just a custom list of suggestions.
What is the likely cause of problem is our inner shadows hack, though I don't think it's an issue in our code - rather a GTK bug.
Will investigate later.
Comment 5 Hugo Pereira Da Costa 2011-09-27 06:21:03 UTC
Had the same guess here, tried to disable the inner-shadow hack but without success. Problem remains. now maybe I did not test good enough.
Modified the bug title to reflect the actual bug.
Comment 6 Ruslan Kabatsayev 2011-09-27 06:28:17 UTC
Well, it appears that the true combobox popup menu is also corrupted in the same way. The bug is still there without compositing, and with compositing the window appears translucent. And yes, this seems to be specific to xfrun4.
Comment 7 Hugo Pereira Da Costa 2011-09-27 06:30:59 UTC
I also tried to disable combobox-list-resize hack, and it does not help either ...
Comment 8 Hugo Pereira Da Costa 2011-09-27 07:53:13 UTC
First, to get oxygen debug messages you need to run
1/ xfrun4 --quit (kills the daemon)
2/ xfrun4 --daemon (runs the daemon, this guy will display stdout and stderr)
3/ xfrun4 (this guy starts the dialog)

Now you get:

The program 'xfrun4' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadColor (invalid Colormap parameter)'.

the problem comes from our ARGB hack. 

Installing the ARGB colormap on the list causes the corruption. Don't know why yet, but still investigating. This is why it works with other styles.
Comment 9 Hugo Pereira Da Costa 2011-09-27 08:18:54 UTC
Blacklisting xfrun4 for ARGB fixes the issue. But this is not very satisfactory.
I suspect an issue with the combobox model used by xfrun4
Comment 10 David Rosenstrauch 2011-10-04 21:53:21 UTC
Hi.  My apologies for not getting back to you both sooner.  (Was away from work for a bit.)  I've consolidated responses to your questions below:

re: #1:  My color scheme is a custom one.  (http://www.darose.net/DarkBlueGreyDave9.colors)  However, I was also able to reproduce this with Obsidian Coast color scheme.  (http://www.darose.net/oxygen-gtk-xfce-run-dialog-broken-obsidian-coast-colorscheme.png)

re: #2:
	a) Yes, it does seem to me as well that the menu is getting corrupted.  Firstly, when I use the up/down arrows to scroll through the choices in the list, I see this corrupted display:  http://www.darose.net/oxygen-gtk-xfce-run-dialog-broken-menu-corrupted.png .  But also, on my desktop I am using pidgin with the guificiations plugin (to notify me when I get an IM) and I happened to receive an IM notification popup while I had xfrun4 open testing this bug.  The menu got corrupted with pieces of image of the guifications popup.
	b) I am also able to reproduce this with Oxygen color scheme.  (http://www.darose.net/oxygen-gtk-xfce-run-dialog-broken-oxygen-colorscheme.png)

re: #3:  Confirmed that other combo boxes, such as the one in the XFCE settings Display tab, behave fine.  ((http://www.darose.net/oxygen-gtk-xfce-run-dialog-broken-display-tab-comboboxes.png)  However, it's probably relevant to note that the combo box in the Display tab is a different kind of widget than the one in xfrun4.  Xfrun4 has a true combo box - i.e., a combination of a chooser widget plus a text field on the top - while the Display tab contains only a chooser widget.  Not sure if that distinction is what's making this problem specific to xfrun4.

re: #4:  Yes, I am also using 4.8:
[darose@daroselin ~]$ pacman -Qo $(which xfrun4)
/usr/bin/xfrun4 is owned by xfce-utils 4.8.3-1

re: #8:  I tried to output debug messages using "xfrun4 --daemon", but unlike you I did not get any output:
[darose@daroselin ~]$ xfrun4 --quit
[darose@daroselin ~]$ xfrun4 --daemon
[darose@daroselin ~]$ xfrun4	(after this, I used the dialog box a bit, but did not get any error output)
[darose@daroselin ~]$ 

So ... just wondering if either of you had any ideas as to a cause/fix/workaround?

Thanks!  -- DR
Comment 11 Ruslan Kabatsayev 2011-10-04 22:10:21 UTC
@David Rosenstrauch
As a temporary workaround, until this bug is fixed, you can use this command to blacklist xfrun4 from applying ARGB hack:

echo disable:xfrun4 >> $HOME/.config/oxygen-gtk/argb-apps.conf

It will make the menu corners not antialiased, but at least will allow it to work normally.
Comment 12 David Rosenstrauch 2011-10-04 22:21:18 UTC
Awesome - great workaround!  Tnx!
Comment 13 Hugo Pereira Da Costa 2011-10-15 13:19:04 UTC
Git commit b6649acbc90c6db02ce4f51f8a43173267ab99c0 by Hugo Pereira Da Costa.
Committed on 15/10/2011 at 15:17.
Pushed by hpereiradacosta into branch '1.1'.

added xfrun4 to argb black list (this is a temporary fix)
CCBUG: 282867

M  +2    -1    rc/argb-apps.conf

Comment 14 David Rosenstrauch 2012-01-24 05:58:58 UTC
Hmmm .... this issue seems to have come back again since my distro upgraded to the new oxygen-gtk2 (v1.2.0) / oxygen-gtk3 (v1.0.0) combo.

a) Should the argb-apps.conf file workaround still address this?
b) Is there a more permanent upstream fix that can be applied?

Comment 15 Hugo Pereira Da Costa 2012-01-24 07:29:11 UTC
no this was not worked around in the code.
So yes argb.conf should be the right solution.
It seems I did not merge the change pushed to 1.1 into master, nor 1.2, so that your old file was erased. Please update the file manually (see comment #11). I'll re-include the fix in 1.2 and master.

Comment 16 Hugo Pereira Da Costa 2012-01-24 10:02:58 UTC
Git commit d2244c3622eff8a82fad3a2d16c49d4dad477373 by Hugo Pereira Da Costa.
Committed on 24/01/2012 at 11:02.
Pushed by hpereiradacosta into branch '1.2'.

disabled xfrun4.

M  +1    -0    rc/argb-apps.conf

Comment 17 Hugo Pereira Da Costa 2012-01-24 10:03:56 UTC
ok, re-fixed (re-worked around) Sorry for the trouble.