guix
guix copied to clipboard
Drop-List doesn't render "complex" widgets correctly
If I create a template consisting of a simple window with a text prompt as its child, and then use this template widget for the items in a drop-list, then the drop-list's draw function does not render the child text prompt when drawing the selected item into the drop-list's client area.
This behavior seems to come from the code in _gx_drop_list_draw() which changes the 'size' and 'clip' members of the selected widget, but does not change these members in any of the widget's children, resulting in the draw functions for the children never being called due to the gx_utility_rectangle_overlap_detect() call failing in _gx_widget_children_draw().
Perhaps this should be done using something like gx_widget_shift() instead?
These "complex" widgets do render correctly when they're drawn alongside each other when the drop-list is opened, it's just when rendering the selected widget at the top where the bug appears. "Simple" widgets without children do always render as expected in the drop-list.
This certainly looks like a bug, thanks for the detailed report. I've entered this in our backlog and we will include a fix for the end-of-April release. Do you need an immediate patch? If you do, please email [email protected] so that we can email the updated file(s) to you directly.