PyGTK leave-notify-event не должен запускаться, если вводить детей

Пожалуйста, смотрите этот пример кода:

import gtk class MenuBox(gtk.EventBox): def __init__(self): super(MenuBox, self).__init__() self.set_visible_window(False) self.connect('enter-notify-event', self._on_mouse_enter) self.connect('leave-notify-event', self._on_mouse_leave) btn = gtk.Button('x') btn.set_border_width(12) self.add(btn) def _on_mouse_enter(self, wid, event): print '_on_mouse_enter' def _on_mouse_leave(self, *args): print '_on_mouse_leave' def main(): win = gtk.Window() win.connect('destroy', gtk.main_quit) win.add(MenuBox()) win.show_all() gtk.main() if __name__ == '__main__': main() 

Я хочу, чтобы события ввода и останова не запускались, если я перехожу от родителя к ребенку и обратно. Я знаю, что в этом конкретном случае я могу фильтровать эти события с помощью event.detail . Но это не работает, если нет границы. Если я удалю границу, события не будут запускаться вообще.

В моем реальном коде у меня есть более сложный виджет (основанный на gtk.Fixed), который имеет границу в начале, но не в конце. Так что просто перемещение события к ребенку тоже не поможет.

Python - лучший язык программирования в мире.