diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 23401a44e8..a565e58b7d 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -683,6 +683,8 @@ static gboolean gtk_widget_real_button_event (GtkWidget GdkEventButton *event); static gboolean gtk_widget_real_motion_event (GtkWidget *widget, GdkEventMotion *event); +static gboolean gtk_widget_real_crossing_event (GtkWidget *widget, + GdkEventCrossing *event); static gboolean gtk_widget_real_key_press_event (GtkWidget *widget, GdkEventKey *event); static gboolean gtk_widget_real_key_release_event (GtkWidget *widget, @@ -1076,8 +1078,8 @@ gtk_widget_class_init (GtkWidgetClass *klass) klass->destroy_event = NULL; klass->key_press_event = gtk_widget_real_key_press_event; klass->key_release_event = gtk_widget_real_key_release_event; - klass->enter_notify_event = NULL; - klass->leave_notify_event = NULL; + klass->enter_notify_event = gtk_widget_real_crossing_event; + klass->leave_notify_event = gtk_widget_real_crossing_event; klass->configure_event = NULL; klass->focus_in_event = gtk_widget_real_focus_in_event; klass->focus_out_event = gtk_widget_real_focus_out_event; @@ -7217,6 +7219,14 @@ gtk_widget_real_motion_event (GtkWidget *widget, GTK_PHASE_BUBBLE); } +static gboolean +gtk_widget_real_crossing_event (GtkWidget *widget, + GdkEventCrossing *event) +{ + return _gtk_widget_run_controllers (widget, (GdkEvent *) event, + GTK_PHASE_BUBBLE); +} + static gboolean gtk_widget_real_key_press_event (GtkWidget *widget, GdkEventKey *event)