Hello.

I'm having problems with remove_handler, I don't understand why I can“t remove a handler using remove_handler. It works fine with Push/Pop, however.

Any help?

This code reproduces my problem:

import pyglet

class Dispatcher(pyglet.event.EventDispatcher):

    def test(self):
        print "dispatch_event ..."
        self.dispatch_event("on_test")

Dispatcher.register_event_type("on_test")

class Listener(object):

    def __init__(self):
        self.dispatcher=Dispatcher()

    def start(self):
        print "set_handler"
        self.dispatcher.set_handler('on_test',self.test)

    def end(self):
        print "remove_handler"
        self.dispatcher.remove_handler('on_test',self.test)

    def test(self):
        print "CALLED EVENT HANDLER!"


listener=Listener()
print "_event_stack=",str(listener.dispatcher._event_stack)
listener.dispatcher.test()
listener.start()
listener.dispatcher.test()
listener.end()
listener.dispatcher.test()
print "_event_stack=",str(listener.dispatcher._event_stack)


OUTPUT:

_event_stack= ()
dispatch_event ...
set_handler
dispatch_event ...
CALLED EVENT HANDLER!
remove_handler
dispatch_event ...
CALLED EVENT HANDLER!
_event_stack= [{'on_test': <bound method Listener.test of <__main__.Listener obj
ect at 0x022E3DD0>>}]

--
You received this message because you are subscribed to the Google Groups 
"pyglet-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pyglet-users?hl=en.

Reply via email to