Hi,

So, I think I've found a bug!

I'm developing a plugin that implements IRequestHandler and
INavigationContributor. My "process_request()" method calls
"add_script()" a couple of times. For reasons I don't fully
understand, the "get_active_navigation_item()" method gets called in
these situations, but I'm assuming it's by design.

Note that "process_request()" belongs to the IRequestHandler extension
point, and "get_active_navigation_item()" belongs to the
INavigationContributor extension point.

The issue is, I need to implement these extensions points in two
distinct Component classes. But when I split the Component class in
two (one for each extension point) the "get_active_navigation_item()"
is no longer called, so the item that I'm adding to the mainnav no
longer shows highlighted...

I am sure that both Component classes are being picked up by trac as
the other methods of the extensions points are being invoked (e.g.,
the get_navigation_items() method is being called).

I've tracked this as far as trac.web.chrome.py. I think the relevant
lines are these:

            if contributor is handler:
                    active =
contributor.get_active_navigation_item(req)

I can't figure out where the "handler" value comes from, but I've
confirmed that it is never an instance of the component implementing
INavigationContributor.

Any help appreciated.

thanks in advance!

Filipe Correia

-- 
You received this message because you are subscribed to the Google Groups "Trac 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to trac-dev+unsubscr...@googlegroups.com.
To post to this group, send email to trac-dev@googlegroups.com.
Visit this group at http://groups.google.com/group/trac-dev?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to