Gtk::Widget on_enter_notify当鼠标关闭时

Gtk::Widget on_enter_notify when mouse is down?

本文关键字:鼠标 enter Widget on Gtk notify      更新时间:2023-10-16

我试图有一个Gtk::Widgets的列表,当点击我需要突出显示的小部件,但当用户按住按钮,并拖到另一个小部件,第一个将'取消突出显示',新的一个将突出显示在enter_notify。

我已经尝试使用on_enter_notify_event,和on_button_press_event在多个组合(是的,我添加的事件),但每次我'按'小部件,它开始拖动事件,enter_notify和leave_notify不会触发。

是否有一种方法可以忽略拖动事件?我试过结束它,当它开始,但我认为问题是on_notify不会触发鼠标下来。还有别的方法吗?

好的,显然当一个小部件被激活或点击时,GdkDevice 'grab()是小部件,只向该小部件发送事件。我从事件中取出设备,并在它上调用'ungrab()'所以它允许其他单元格接收事件。然后在其他单元格上,我检查on_enter_notify_event中的event->状态,看看鼠标是否已按下,瞧!单元格被高亮显示。

bool cell::on_button_press_event(GdkEventButton* event) {
  highlight_cell();
  gdk_device_ungrab(event->device, event->time);
  return true;
}