PyGTK覚え書き イベントの伝播を止める
gtk.Layoutにgtk.EventBoxを置いて、マウスダウンのイベントを取得するために、
以下のようなシグナルを処理するコールバックを登録しました。
self.connect('button_press_event', self.on_mouse_down)
self.connect('button_release_event', self.on_mouse_up)
gtk.Layoutにもマウスダウンのイベントを処理できるようにしてあるのですが、
gtk.EventBoxがクリックされると、EventBoxのコールバック(on_mouse_down)と、Layoutのマウスダウンイベント処理の両方が実行されてしまって困っていました。
でいろいろ調べてみると、
'button_press_event'用のコールバック関数の戻り値としてTrueを戻すようにすると、それ以上イベントが伝播しなくなる。
ことがわかりました。(それを知るまでは、何もリターンしてませんでした。。。)
いや〜。今日も新しい発見があって満足です(笑