See steps to reproduce Reproducible: Always Steps to Reproduce: 1. Launch nvidia-settings or any other app with GtkOptionMenu 2. Popup an option menu, then pop it down. 3. Scroll above the option menu button to go to next option 4. See the text of current item disappear 5. After reselecting it via menu the text reappears Actual Results: Text (and probably icon) disappears in the some of the option menu items Expected Results: Text shouldn't disappear It seems that the reason for this is that the item's depth is only changed when the menu appears, and when we just scroll to switch current item, new depth isn't applied.
This is because the GtkMenuItems are only registered to engine (and parentSet signal connected), only once they have been selected once. If you go and select one by one the items in the menu, then there is no more issue, and the engine does its job. In the past this was working better cause we where using a hook (connected at GtkMenuItem's creation) but at some point this failed, and I changed the code to its current state. 8710e03009c987db65b27a877b8e682bfc3101fd moved style re-attachement from oxygenargbhelper to dedicated menuItem engine. CCBUG: 295803 Obviously this is not sufficient. I need to find a smarter way to register the menuItems to the engine. Maybe by triggering on menu being shown and looping over its children at that time.
Git commit 4c05651de7da088f0b93e6c949abb56431ff8a67 by Hugo Pereira Da Costa. Committed on 03/05/2012 at 23:19. Pushed by hpereiradacosta into branch 'master'. Register all GtkMenuItems to MenuItemEngine via their parent menu, the first time it is shown. M +1 -0 src/CMakeLists.txt C +23 -28 src/animations/oxygenmenuitemengine.cpp [from: src/animations/oxygenmenuitemengine.h - 051% similarity] M +3 -0 src/animations/oxygenmenuitemengine.h M +3 -0 src/oxygenstylewrapper.cpp http://commits.kde.org/oxygen-gtk/4c05651de7da088f0b93e6c949abb56431ff8a67
That should fix it. Please confirm and close. I'll merge with the other branches (1.2 and gtk3's) after confirmation.
I confirm that this is now fixed. Thanks.
Git commit e9294fccc535094f1a902120cde34b65f2639769 by Hugo Pereira Da Costa. Committed on 03/05/2012 at 23:19. Pushed by hpereiradacosta into branch '1.2'. Register all GtkMenuItems to MenuItemEngine via their parent menu, the first time it is shown. M +1 -0 src/CMakeLists.txt C +23 -28 src/animations/oxygenmenuitemengine.cpp [from: src/animations/oxygenmenuitemengine.h - 051% similarity] M +3 -0 src/animations/oxygenmenuitemengine.h M +3 -0 src/oxygenstylewrapper.cpp http://commits.kde.org/oxygen-gtk/e9294fccc535094f1a902120cde34b65f2639769
Git commit 4045e710bd1093aa602c93c15bf968dae006f6e2 by Hugo Pereira Da Costa. Committed on 03/05/2012 at 23:19. Pushed by hpereiradacosta into branch 'gtk3'. Register all GtkMenuItems to MenuItemEngine via their parent menu, the first time it is shown. M +1 -0 src/CMakeLists.txt C +23 -28 src/animations/oxygenmenuitemengine.cpp [from: src/animations/oxygenmenuitemengine.h - 051% similarity] M +3 -0 src/animations/oxygenmenuitemengine.h M +3 -0 src/oxygenthemingengine.cpp http://commits.kde.org/oxygen-gtk/4045e710bd1093aa602c93c15bf968dae006f6e2