From: Benjamin Otte Date: Thu, 8 Mar 2018 23:03:15 +0000 (+0100) Subject: pangesture: Port to new API model X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~22^2~349^2~9 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=71991270b047c66e7c14a65aaa70703527c978cf;p=gtk4.git pangesture: Port to new API model --- diff --git a/gtk/gtkgesturepan.c b/gtk/gtkgesturepan.c index 7f6812a3df..c02daeed64 100644 --- a/gtk/gtkgesturepan.c +++ b/gtk/gtkgesturepan.c @@ -276,13 +276,9 @@ gtk_gesture_pan_init (GtkGesturePan *gesture) * Returns: a newly created #GtkGesturePan **/ GtkGesture * -gtk_gesture_pan_new (GtkWidget *widget, - GtkOrientation orientation) +gtk_gesture_pan_new (GtkOrientation orientation) { - g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL); - return g_object_new (GTK_TYPE_GESTURE_PAN, - "widget", widget, "orientation", orientation, NULL); } diff --git a/gtk/gtkgesturepan.h b/gtk/gtkgesturepan.h index dc6a3991c0..496f4db57b 100644 --- a/gtk/gtkgesturepan.h +++ b/gtk/gtkgesturepan.h @@ -42,8 +42,7 @@ GDK_AVAILABLE_IN_ALL GType gtk_gesture_pan_get_type (void) G_GNUC_CONST; GDK_AVAILABLE_IN_ALL -GtkGesture * gtk_gesture_pan_new (GtkWidget *widget, - GtkOrientation orientation); +GtkGesture * gtk_gesture_pan_new (GtkOrientation orientation); GDK_AVAILABLE_IN_ALL GtkOrientation gtk_gesture_pan_get_orientation (GtkGesturePan *gesture); diff --git a/gtk/gtkpaned.c b/gtk/gtkpaned.c index 14f050572c..5f44775ad5 100644 --- a/gtk/gtkpaned.c +++ b/gtk/gtkpaned.c @@ -993,7 +993,6 @@ gtk_paned_finalize (GObject *object) gtk_paned_set_saved_focus (paned, NULL); gtk_paned_set_first_paned (paned, NULL); - g_clear_object (&priv->pan_gesture); g_clear_object (&priv->drag_gesture); g_clear_object (&priv->motion_controller); @@ -1482,12 +1481,12 @@ gtk_paned_init (GtkPaned *paned) _gtk_orientable_set_style_classes (GTK_ORIENTABLE (paned)); /* Touch gesture */ - gesture = gtk_gesture_pan_new (GTK_WIDGET (paned), - GTK_ORIENTATION_HORIZONTAL); + gesture = gtk_gesture_pan_new (GTK_ORIENTATION_HORIZONTAL); connect_drag_gesture_signals (paned, gesture); gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture), TRUE); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_CAPTURE); + gtk_widget_add_controller (GTK_WIDGET (paned), GTK_EVENT_CONTROLLER (gesture)); priv->pan_gesture = gesture; /* Pointer gesture */ diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index 4f7d8cf7dd..96a8ea6f35 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -1931,9 +1931,10 @@ gtk_scrolled_window_init (GtkScrolledWindow *scrolled_window) G_CALLBACK (scrolled_window_drag_end_cb), scrolled_window); - priv->pan_gesture = gtk_gesture_pan_new (widget, GTK_ORIENTATION_VERTICAL); - gtk_gesture_group (priv->pan_gesture, priv->drag_gesture); + priv->pan_gesture = gtk_gesture_pan_new (GTK_ORIENTATION_VERTICAL); gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (priv->pan_gesture), TRUE); + gtk_widget_add_controller (widget, GTK_EVENT_CONTROLLER (priv->pan_gesture)); + gtk_gesture_group (priv->pan_gesture, priv->drag_gesture); priv->swipe_gesture = gtk_gesture_swipe_new (); gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (priv->swipe_gesture), TRUE); @@ -2616,7 +2617,6 @@ gtk_scrolled_window_finalize (GObject *object) g_clear_object (&priv->drag_gesture); g_clear_object (&priv->long_press_gesture); - g_clear_object (&priv->pan_gesture); g_clear_object (&priv->scroll_controller); diff --git a/gtk/gtkshortcutssection.c b/gtk/gtkshortcutssection.c index be60ba3799..885d3665a2 100644 --- a/gtk/gtkshortcutssection.c +++ b/gtk/gtkshortcutssection.c @@ -70,8 +70,6 @@ struct _GtkShortcutsSection gboolean has_filtered_group; gboolean need_reflow; - - GtkGesture *pan_gesture; }; struct _GtkShortcutsSectionClass @@ -232,7 +230,6 @@ gtk_shortcuts_section_finalize (GObject *object) g_clear_pointer (&self->name, g_free); g_clear_pointer (&self->title, g_free); g_clear_pointer (&self->view_name, g_free); - g_clear_object (&self->pan_gesture); G_OBJECT_CLASS (gtk_shortcuts_section_parent_class)->finalize (object); } @@ -417,6 +414,8 @@ gtk_shortcuts_section_class_init (GtkShortcutsSectionClass *klass) static void gtk_shortcuts_section_init (GtkShortcutsSection *self) { + GtkGesture *gesture; + self->max_height = 15; gtk_orientable_set_orientation (GTK_ORIENTABLE (self), GTK_ORIENTATION_VERTICAL); @@ -454,9 +453,10 @@ gtk_shortcuts_section_init (GtkShortcutsSection *self) gtk_box_pack_end (GTK_BOX (self->footer), self->show_all); gtk_widget_set_halign (self->show_all, GTK_ALIGN_END); - self->pan_gesture = gtk_gesture_pan_new (GTK_WIDGET (self->stack), GTK_ORIENTATION_HORIZONTAL); - g_signal_connect (self->pan_gesture, "pan", + gesture = gtk_gesture_pan_new (GTK_ORIENTATION_HORIZONTAL); + g_signal_connect (gesture, "pan", G_CALLBACK (gtk_shortcuts_section_pan_gesture_pan), self); + gtk_widget_add_controller (GTK_WIDGET (self->stack), GTK_EVENT_CONTROLLER (gesture)); } static void diff --git a/gtk/gtkswitch.c b/gtk/gtkswitch.c index 2116eafcf2..e5fa5a1726 100644 --- a/gtk/gtkswitch.c +++ b/gtk/gtkswitch.c @@ -475,7 +475,6 @@ gtk_switch_dispose (GObject *object) g_clear_object (&priv->action_helper); - g_clear_object (&priv->pan_gesture); g_clear_object (&priv->multipress_gesture); G_OBJECT_CLASS (gtk_switch_parent_class)->dispose (object); @@ -631,8 +630,7 @@ gtk_switch_init (GtkSwitch *self) GTK_PHASE_BUBBLE); priv->multipress_gesture = gesture; - gesture = gtk_gesture_pan_new (GTK_WIDGET (self), - GTK_ORIENTATION_HORIZONTAL); + gesture = gtk_gesture_pan_new (GTK_ORIENTATION_HORIZONTAL); gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture), FALSE); gtk_gesture_single_set_exclusive (GTK_GESTURE_SINGLE (gesture), TRUE); g_signal_connect (gesture, "pan", @@ -641,6 +639,7 @@ gtk_switch_init (GtkSwitch *self) G_CALLBACK (gtk_switch_pan_gesture_drag_end), self); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_CAPTURE); + gtk_widget_add_controller (GTK_WIDGET (self), GTK_EVENT_CONTROLLER (gesture)); priv->pan_gesture = gesture; /* Translators: if the "on" state label requires more than three