Bug 264453

Summary: oxygen-gtk trouble with combo-boxes in gajim IM client
Product: [Plasma] Oxygen Reporter: Ivo Anjo <ivo>
Component: gtk2-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: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Screenshot

Description Ivo Anjo 2011-01-27 12:24:36 UTC
Created attachment 56489 [details]
Screenshot

Version:           unspecified (using KDE 4.6.0) 
OS:                Linux

The Gajim IM client (http://www.gajim.org/) uses icons on some comboboxes, and oxygen-gtk seems to have some problems with it. On the main window, the combobox is supposed to show icons, and does not show any when they are selected.

On the preferences screen, the status iconset configuration draws the icons out of place.

Reproducible: Always
Comment 1 Hugo Pereira Da Costa 2011-01-27 14:24:40 UTC
yes. Sadly enough, I can confirm.
Looks like our combobox rendering is not robust enough.
On it.
Comment 2 Hugo Pereira Da Costa 2011-01-27 14:24:48 UTC
@Ruslan
ok. Apparently PyGtk (or Gajim alone) has its specific CellRendererImage class,
that is not in Gtk, and does not honor the xpading, ypading whith which we play
in oxygencomboboxdata. Hence the messed up layout. 

So ... maybe we're just f..ed here. and have to fallback to setting xthickness
to 6, give up on the tweaking from ComboBoxData, and live (like QtCurve) with a
6 pixels wide "dead" area in the GtkComboBox rendering :(
Comment 3 Hugo Pereira Da Costa 2011-01-27 17:26:45 UTC
Git commit 6bef60b327b1e594c63f7611dcaabff44d70eb51 by Hugo Pereira Da Costa.
Pushed by hpereiradacosta into branch 'master'.

Fixed rendering of GtkComboBox
- removed all modifications of CellRenderers layout.
- set xthickness and ythickness of GtkComboBox's Frame to 4 (as opposed to 0)
- manually enlarge the GdkWindow of the GtkComboBox's button, to cover the dead area created by
the Frame's margin.

CCBUG: 264453

M  +2    -1    rc/gtkrc     
M  +28   -43   src/animations/oxygencomboboxdata.cpp     
M  +12   -6    src/animations/oxygencomboboxdata.h     
M  +0    -4    src/animations/oxygencomboboxengine.h     
M  +0    -2    src/oxygenstylewrapper.cpp     

http://commits.kde.org/d1a86b4e/6bef60b327b1e594c63f7611dcaabff44d70eb51
Comment 4 Hugo Pereira Da Costa 2011-01-27 19:11:30 UTC
That fixes it, in both trunk and 1.0 branch.
Closing.
Thanks for reporting !
(in fact, fixing this bug made us end up with a much cleaner code concerning combobox painting).
Comment 5 Ivo Anjo 2011-01-27 19:24:32 UTC
Thank you for such a quick turnaround time :)
I can confirm that this works correctly with current git.