Merge branch 'wip/carlosg/scroll-controller-fixes' into 'gtk-3-24'

Wip/carlosg/scroll controller fixes

See merge request GNOME/gtk!1141
This commit is contained in:
Emmanuele Bassi 2019-10-21 22:35:17 +00:00
commit ce5e97f720
2 changed files with 14 additions and 0 deletions

View File

@ -455,6 +455,9 @@ gtk_event_controller_scroll_init (GtkEventControllerScroll *scroll)
{ {
scroll->scroll_history = g_array_new (FALSE, FALSE, scroll->scroll_history = g_array_new (FALSE, FALSE,
sizeof (ScrollHistoryElem)); sizeof (ScrollHistoryElem));
gtk_event_controller_set_event_mask (GTK_EVENT_CONTROLLER (scroll),
GDK_SCROLL_MASK |
GDK_SMOOTH_SCROLL_MASK);
} }
/** /**

View File

@ -673,6 +673,8 @@ static gboolean _gtk_widget_run_controllers (GtkWidget *widget,
static void gtk_widget_dispatch_child_properties_changed (GtkWidget *object, static void gtk_widget_dispatch_child_properties_changed (GtkWidget *object,
guint n_pspecs, guint n_pspecs,
GParamSpec **pspecs); GParamSpec **pspecs);
static gboolean gtk_widget_real_scroll_event (GtkWidget *widget,
GdkEventScroll *event);
static gboolean gtk_widget_real_button_event (GtkWidget *widget, static gboolean gtk_widget_real_button_event (GtkWidget *widget,
GdkEventButton *event); GdkEventButton *event);
static gboolean gtk_widget_real_motion_event (GtkWidget *widget, static gboolean gtk_widget_real_motion_event (GtkWidget *widget,
@ -1061,6 +1063,7 @@ gtk_widget_class_init (GtkWidgetClass *klass)
klass->move_focus = gtk_widget_real_move_focus; klass->move_focus = gtk_widget_real_move_focus;
klass->keynav_failed = gtk_widget_real_keynav_failed; klass->keynav_failed = gtk_widget_real_keynav_failed;
klass->event = NULL; klass->event = NULL;
klass->scroll_event = gtk_widget_real_scroll_event;
klass->button_press_event = gtk_widget_real_button_event; klass->button_press_event = gtk_widget_real_button_event;
klass->button_release_event = gtk_widget_real_button_event; klass->button_release_event = gtk_widget_real_button_event;
klass->motion_notify_event = gtk_widget_real_motion_event; klass->motion_notify_event = gtk_widget_real_motion_event;
@ -7186,6 +7189,14 @@ gtk_widget_draw (GtkWidget *widget,
cairo_restore (cr); cairo_restore (cr);
} }
static gboolean
gtk_widget_real_scroll_event (GtkWidget *widget,
GdkEventScroll *event)
{
return _gtk_widget_run_controllers (widget, (GdkEvent *) event,
GTK_PHASE_BUBBLE);
}
static gboolean static gboolean
gtk_widget_real_button_event (GtkWidget *widget, gtk_widget_real_button_event (GtkWidget *widget,
GdkEventButton *event) GdkEventButton *event)