static void
gtk_font_plane_init (GtkFontPlane *plane)
{
+ GtkGesture *gesture;
+
gtk_widget_set_has_surface (GTK_WIDGET (plane), FALSE);
gtk_widget_set_can_focus (GTK_WIDGET (plane), TRUE);
G_CALLBACK (plane_drag_gesture_end), plane);
gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (plane->drag_gesture), 0);
- plane->long_press_gesture = gtk_gesture_long_press_new (GTK_WIDGET (plane));
- g_signal_connect (plane->long_press_gesture, "pressed",
+ gesture = gtk_gesture_long_press_new ();
+ g_signal_connect (gesture, "pressed",
G_CALLBACK (hold_action), plane);
- gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (plane->long_press_gesture),
+ gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture),
TRUE);
+ gtk_widget_add_controller (GTK_WIDGET (plane), GTK_EVENT_CONTROLLER (gesture));
}
static void
g_clear_object (&plane->width_adj);
g_clear_object (&plane->drag_gesture);
- g_clear_object (&plane->long_press_gesture);
G_OBJECT_CLASS (gtk_font_plane_parent_class)->finalize (object);
}
GtkAdjustment *width_adj;
GtkGesture *drag_gesture;
- GtkGesture *long_press_gesture;
};
struct _GtkFontPlaneClass
g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture);
/* Long press */
- gesture = gtk_gesture_long_press_new (drawing_area);
+ gesture = gtk_gesture_long_press_new ();
g_signal_connect (gesture, "pressed",
G_CALLBACK (long_press_gesture_pressed), drawing_area);
g_signal_connect (gesture, "end",
G_CALLBACK (long_press_gesture_end), drawing_area);
gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture),
GTK_PHASE_BUBBLE);
- g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture);
+ gtk_widget_add_controller (drawing_area, GTK_EVENT_CONTROLLER (gesture));
/* Rotate */
rotate = gesture = gtk_gesture_rotate_new ();
GdkTexture *texture;
GtkGesture *drag_gesture;
- GtkGesture *long_press_gesture;
GtkEventController *key_controller;
};
static void
gtk_color_plane_init (GtkColorPlane *plane)
{
+ GtkGesture *gesture;
AtkObject *atk_obj;
plane->priv = gtk_color_plane_get_instance_private (plane);
G_CALLBACK (plane_drag_gesture_end), plane);
gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (plane->priv->drag_gesture), 0);
- plane->priv->long_press_gesture = gtk_gesture_long_press_new (GTK_WIDGET (plane));
- g_signal_connect (plane->priv->long_press_gesture, "pressed",
+ gesture = gtk_gesture_long_press_new ();
+ g_signal_connect (gesture, "pressed",
G_CALLBACK (hold_action), plane);
- gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (plane->priv->long_press_gesture),
+ gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture),
TRUE);
+ gtk_widget_add_controller (GTK_WIDGET (plane), GTK_EVENT_CONTROLLER (gesture));
plane->priv->key_controller = gtk_event_controller_key_new (GTK_WIDGET (plane));
g_signal_connect (plane->priv->key_controller, "key-pressed",
g_clear_object (&plane->priv->v_adj);
g_clear_object (&plane->priv->drag_gesture);
- g_clear_object (&plane->priv->long_press_gesture);
g_clear_object (&plane->priv->key_controller);
G_OBJECT_CLASS (gtk_color_plane_parent_class)->finalize (object);
{
GdkRGBA color;
GtkColorScaleType type;
-
- GtkGesture *long_press_gesture;
};
enum
gtk_color_scale_init (GtkColorScale *scale)
{
GtkStyleContext *context;
+ GtkGesture *gesture;
scale->priv = gtk_color_scale_get_instance_private (scale);
- scale->priv->long_press_gesture = gtk_gesture_long_press_new (GTK_WIDGET (scale));
- g_signal_connect (scale->priv->long_press_gesture, "pressed",
+ gesture = gtk_gesture_long_press_new ();
+ g_signal_connect (gesture, "pressed",
G_CALLBACK (hold_action), scale);
- gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (scale->priv->long_press_gesture),
+ gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture),
GTK_PHASE_TARGET);
+ gtk_widget_add_controller (GTK_WIDGET (scale), GTK_EVENT_CONTROLLER (gesture));
context = gtk_widget_get_style_context (GTK_WIDGET (scale));
gtk_style_context_add_class (context, "color");
}
-static void
-scale_finalize (GObject *object)
-{
- GtkColorScale *scale = GTK_COLOR_SCALE (object);
-
- g_clear_object (&scale->priv->long_press_gesture);
-
- G_OBJECT_CLASS (gtk_color_scale_parent_class)->finalize (object);
-}
-
static void
scale_get_property (GObject *object,
guint prop_id,
{
GObjectClass *object_class = G_OBJECT_CLASS (class);
- object_class->finalize = scale_finalize;
object_class->get_property = scale_get_property;
object_class->set_property = scale_set_property;
guint selectable : 1;
guint has_menu : 1;
- GtkGesture *long_press_gesture;
GtkEventController *key_controller;
GtkWidget *overlay_widget;
swatch->priv->popover = NULL;
}
- g_clear_object (&swatch->priv->long_press_gesture);
g_clear_object (&swatch->priv->key_controller);
G_OBJECT_CLASS (gtk_color_swatch_parent_class)->dispose (object);
gtk_widget_set_can_focus (GTK_WIDGET (swatch), TRUE);
gtk_widget_set_has_surface (GTK_WIDGET (swatch), FALSE);
- swatch->priv->long_press_gesture = gtk_gesture_long_press_new (GTK_WIDGET (swatch));
- gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (swatch->priv->long_press_gesture),
+ gesture = gtk_gesture_long_press_new ();
+ gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture),
TRUE);
- g_signal_connect (swatch->priv->long_press_gesture, "pressed",
+ g_signal_connect (gesture, "pressed",
G_CALLBACK (hold_action), swatch);
+ gtk_widget_add_controller (GTK_WIDGET (swatch), GTK_EVENT_CONTROLLER (gesture));
gesture = gtk_gesture_multi_press_new ();
gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0);
GtkWidget *active_variation;
GVariant *data;
-
- GtkGesture *long_press;
};
struct _GtkEmojiCompletionClass {
g_free (completion->text);
g_variant_unref (completion->data);
- g_clear_object (&completion->long_press);
-
G_OBJECT_CLASS (gtk_emoji_completion_parent_class)->finalize (object);
}
gtk_emoji_completion_init (GtkEmojiCompletion *completion)
{
g_autoptr(GBytes) bytes = NULL;
+ GtkGesture *long_press;
gtk_widget_init_template (GTK_WIDGET (completion));
bytes = g_resources_lookup_data ("/org/gtk/libgtk/emoji/emoji.data", 0, NULL);
completion->data = g_variant_ref_sink (g_variant_new_from_bytes (G_VARIANT_TYPE ("a(auss)"), bytes, TRUE));
- completion->long_press = gtk_gesture_long_press_new (completion->list);
- g_signal_connect (completion->long_press, "pressed", G_CALLBACK (long_pressed_cb), completion);
+ long_press = gtk_gesture_long_press_new ();
+ g_signal_connect (long_press, "pressed", G_CALLBACK (long_pressed_cb), completion);
+ gtk_widget_add_controller (completion->list, GTK_EVENT_CONTROLLER (long_press));
}
static void
/**
* gtk_gesture_long_press_new:
- * @widget: a #GtkWidget
*
* Returns a newly created #GtkGesture that recognizes long presses.
*
* Returns: a newly created #GtkGestureLongPress
**/
GtkGesture *
-gtk_gesture_long_press_new (GtkWidget *widget)
+gtk_gesture_long_press_new (void)
{
- g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
-
return g_object_new (GTK_TYPE_GESTURE_LONG_PRESS,
- "widget", widget,
NULL);
}
GType gtk_gesture_long_press_get_type (void) G_GNUC_CONST;
GDK_AVAILABLE_IN_ALL
-GtkGesture * gtk_gesture_long_press_new (GtkWidget *widget);
+GtkGesture * gtk_gesture_long_press_new (void);
G_END_DECLS
gint drag_y;
GtkWidget *row_placeholder;
DropState drop_state;
- GtkGesture *long_press_gesture;
/* volume mounting - delayed open process */
GtkPlacesOpenFlags go_to_after_mount_open_flags;
GdkContentFormats *target_list;
gboolean show_desktop;
GtkStyleContext *context;
+ GtkGesture *gesture;
sidebar->cancellable = g_cancellable_new ();
g_signal_connect (sidebar->list_box_key_controller, "key-pressed",
G_CALLBACK (on_key_pressed), sidebar);
- sidebar->long_press_gesture = gtk_gesture_long_press_new (GTK_WIDGET (sidebar));
- gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (sidebar->long_press_gesture), TRUE);
- g_signal_connect (sidebar->long_press_gesture, "pressed",
+ gesture = gtk_gesture_long_press_new ();
+ gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture), TRUE);
+ g_signal_connect (gesture, "pressed",
G_CALLBACK (long_press_cb), sidebar);
+ gtk_widget_add_controller (GTK_WIDGET (sidebar), GTK_EVENT_CONTROLLER (gesture));
/* DND support */
gtk_drag_dest_set (sidebar->list_box,
g_clear_object (&sidebar->current_location);
g_clear_pointer (&sidebar->rename_uri, g_free);
- g_clear_object (&sidebar->long_press_gesture);
g_clear_object (&sidebar->list_box_key_controller);
if (sidebar->source_targets)
/* Whether dragging is ongoing */
guint in_drag : 1;
- GtkGesture *long_press_gesture;
GtkGesture *multipress_gesture;
GtkGesture *drag_gesture;
GtkEventController *scroll_controller;
gtk_range_init (GtkRange *range)
{
GtkRangePrivate *priv = gtk_range_get_instance_private (range);
+ GtkGesture *gesture;
gtk_widget_set_has_surface (GTK_WIDGET (range), FALSE);
gtk_widget_add_controller (GTK_WIDGET (range), GTK_EVENT_CONTROLLER (priv->multipress_gesture));
gtk_gesture_group (priv->drag_gesture, priv->multipress_gesture);
- priv->long_press_gesture = gtk_gesture_long_press_new (GTK_WIDGET (range));
- g_object_set (priv->long_press_gesture, "delay-factor", 2.0, NULL);
- gtk_gesture_group (priv->drag_gesture, priv->long_press_gesture);
- g_signal_connect (priv->long_press_gesture, "pressed",
+ gesture = gtk_gesture_long_press_new ();
+ g_object_set (gesture, "delay-factor", 2.0, NULL);
+ g_signal_connect (gesture, "pressed",
G_CALLBACK (gtk_range_long_press_gesture_pressed), range);
+ gtk_widget_add_controller (GTK_WIDGET (range), GTK_EVENT_CONTROLLER (gesture));
+ gtk_gesture_group (priv->drag_gesture, gesture);
priv->scroll_controller =
gtk_event_controller_scroll_new (GTK_WIDGET (range),
GtkRangePrivate *priv = gtk_range_get_instance_private (range);
g_clear_object (&priv->drag_gesture);
- g_clear_object (&priv->long_press_gesture);
g_clear_object (&priv->scroll_controller);
g_clear_object (&priv->key_controller);
gtk_widget_add_controller (widget, GTK_EVENT_CONTROLLER (priv->swipe_gesture));
gtk_gesture_group (priv->swipe_gesture, priv->drag_gesture);
- priv->long_press_gesture = gtk_gesture_long_press_new (widget);
- gtk_gesture_group (priv->long_press_gesture, priv->drag_gesture);
+ priv->long_press_gesture = gtk_gesture_long_press_new ();
gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (priv->long_press_gesture), TRUE);
g_signal_connect_swapped (priv->long_press_gesture, "pressed",
G_CALLBACK (scrolled_window_long_press_cb),
g_signal_connect_swapped (priv->long_press_gesture, "cancelled",
G_CALLBACK (scrolled_window_long_press_cancelled_cb),
scrolled_window);
+ gtk_widget_add_controller (widget, GTK_EVENT_CONTROLLER (priv->long_press_gesture));
+ gtk_gesture_group (priv->long_press_gesture, priv->drag_gesture);
gtk_scrolled_window_set_kinetic_scrolling (scrolled_window, TRUE);
gtk_scrolled_window_set_capture_button_press (scrolled_window, TRUE);
GtkScrolledWindowPrivate *priv = scrolled_window->priv;
g_clear_object (&priv->drag_gesture);
- g_clear_object (&priv->long_press_gesture);
g_clear_object (&priv->scroll_controller);