Я пытался получать события мыши на моем Gtk.DrawingArea
, используя Vala, но безуспешно. В частности, я подклассифицирую Gtk.DrawingArea
и в своем конструкторе добавляю события, которые хочу получать:
this.add_events (Gdk.EventMask.ENTER_NOTIFY_MASK |
Gdk.EventMask.BUTTON_PRESS_MASK);
Затем в том же конструкторе ниже я регистрирую обработчики сигналов для этих событий:
this.enter_notify_event.connect (
(page, event) => {
stdout.printf("mouse entered !!! \n");
return true;
}
);
this.button_press_event.connect (
(page, event) => {
stdout.printf("mouse click \n");
return false;
}
);
Я пробовал и return true
, и return false
, чтобы проверить, что происходит в обоих случаях. Однако я не вижу сообщений на консоли, когда я перемещаю указатель на Gtk.DrawingArea
или когда я нажимаю на него. Я даже задал события для топа Gtk.Window
:
this.set_events (this.get_events() |
Gdk.EventMask.ENTER_NOTIFY_MASK |
Gdk.EventMask.BUTTON_PRESS_MASK);
но события, похоже, не получаются. Что может пойти не так?