2012-01-05 12 views
0

私はGtk.Binから派生したカスタムウィジェットを使用するGtkベースのアプリケーションを開発しています。私には知られていない何らかの理由で、マウスの動きイベントを受け取っていません。以下のコードが呼び出されることはありません。任意のアイデアGtk.Bin派生クラスはMotionNotifyEventを受け取りません

AddEvents((int) Gdk.EventMask.AllEventsMask); 

[GLib.ConnectBefore] 
    protected override bool OnMotionNotifyEvent (Gdk.EventMotion evnt) 
    { 
     Console.Out.WriteLine("Mouse move!"); 

     return base.OnMotionNotifyEvent (evnt);     
    } 

私はまた、(コンストラクタで)すべてのイベントを受信するウィジェットのイベントマスクを拡張してきましたか?

答えて

0

Gtk.Binはウィンドウレスコンテナなので、デフォルトでマウスイベントを受け取りません。

マウスイベントを受け取るためにサブクラスにGdk.Windowを手動で作成することも、簡単にはGtk.EventBoxをサブクラス化することもできます。これはGtk.Binサブクラスで、Gdkを内部的に作成します窓。

関連する問題