Lack of fId for TGLVEntry

Dear ROOT developers,

I discovered a problem with a TGLVEntry used in PyROOT, which according to Wlav’s post seems to be a bug/lack of implementation on the ROOT C++ side. Explained in detial in [url]How to get selected elements of TGListView

In summary, all the TGLVEntry events are equal in python (== operator), for it uses IsEqual method, which relies on fId of the object. fId is always 0L for TGLVEntry.

Could you please add some fId setting for TGLVEntry or other solution?

Hi,

The problem comes from the fact that fId is attributed by the Window Manager when creating the window. In the case of TGLVEntry, they are not created by the Window manager (to prevent WM overflow).
However, I have a possible fix. Could you post a simple python test case, so I can verify it works?

P.S. Note you can also use the SetMapSubwindows(kTRUE) method on the container of the TGListView to force the creation of TGLVEntry by the Window Manager, but you will be limited by the number of entries and it may become slow…

Cheers, Bertrand.

Hi,

This should be fixed now in the master and the v5-34-00-patches branch.

Cheers, Bertrand.

Thanks! I was too busy these days to provide a working example. I am happy to see that you managed to fix without it.