diff options
-rw-r--r-- | docs/reference/gtk/gtk4-sections.txt | 3 | ||||
-rw-r--r-- | gtk/gtkbutton.c | 47 | ||||
-rw-r--r-- | gtk/gtkcolumnviewcolumn.c | 28 | ||||
-rw-r--r-- | gtk/gtkcolumnviewcolumn.h | 4 | ||||
-rw-r--r-- | gtk/gtkscrolledwindow.c | 72 | ||||
-rw-r--r-- | gtk/gtkscrolledwindow.h | 6 | ||||
-rw-r--r-- | gtk/gtktextview.c | 2 | ||||
-rw-r--r-- | tests/testcolumnview.c | 2 | ||||
-rw-r--r-- | tests/testkineticscrolling.c | 3 | ||||
-rw-r--r-- | tests/testlistdnd.c | 2 |
10 files changed, 16 insertions, 153 deletions
diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt index a5246c6dae..72968d98a4 100644 --- a/docs/reference/gtk/gtk4-sections.txt +++ b/docs/reference/gtk/gtk4-sections.txt @@ -555,7 +555,6 @@ gtk_column_view_get_type <TITLE>GtkColumnViewColumn</TITLE> GtkColumnViewColumn gtk_column_view_column_new -gtk_column_view_column_new_with_factory gtk_column_view_column_get_column_view gtk_column_view_column_set_factory gtk_column_view_column_get_factory @@ -2491,8 +2490,6 @@ gtk_scrolled_window_get_has_frame gtk_scrolled_window_set_has_frame gtk_scrolled_window_get_kinetic_scrolling gtk_scrolled_window_set_kinetic_scrolling -gtk_scrolled_window_get_capture_button_press -gtk_scrolled_window_set_capture_button_press gtk_scrolled_window_get_overlay_scrolling gtk_scrolled_window_set_overlay_scrolling gtk_scrolled_window_get_min_content_width diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c index 1bacdc797b..8ef124da83 100644 --- a/gtk/gtkbutton.c +++ b/gtk/gtkbutton.c @@ -94,7 +94,6 @@ struct _GtkButtonPrivate guint activate_timeout; guint button_down : 1; - guint in_button : 1; guint use_underline : 1; guint child_type : 2; }; @@ -159,16 +158,6 @@ G_DEFINE_TYPE_WITH_CODE (GtkButton, gtk_button, GTK_TYPE_WIDGET, G_IMPLEMENT_INTERFACE (GTK_TYPE_ACTIONABLE, gtk_button_actionable_iface_init)) static void -gtk_button_unmap (GtkWidget *widget) -{ - GtkButtonPrivate *priv = gtk_button_get_instance_private (GTK_BUTTON (widget)); - - priv->in_button = FALSE; - - GTK_WIDGET_CLASS (gtk_button_parent_class)->unmap (widget); -} - -static void gtk_button_compute_expand (GtkWidget *widget, gboolean *hexpand, gboolean *vexpand) @@ -216,7 +205,6 @@ gtk_button_class_init (GtkButtonClass *klass) widget_class->unrealize = gtk_button_unrealize; widget_class->state_flags_changed = gtk_button_state_flags_changed; - widget_class->unmap = gtk_button_unmap; widget_class->compute_expand = gtk_button_compute_expand; widget_class->get_request_mode = gtk_button_get_request_mode; @@ -327,8 +315,6 @@ click_pressed_cb (GtkGestureClick *gesture, if (gtk_widget_get_focus_on_click (widget) && !gtk_widget_has_focus (widget)) gtk_widget_grab_focus (widget); - priv->in_button = TRUE; - sequence = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture)); gtk_gesture_set_sequence_state (GTK_GESTURE (gesture), sequence, GTK_EVENT_SEQUENCE_CLAIMED); @@ -336,28 +322,6 @@ click_pressed_cb (GtkGestureClick *gesture, priv->button_down = TRUE; } -static gboolean -touch_release_in_button (GtkGestureClick *gesture, - GtkWidget *widget, - double x, - double y) -{ - GdkEvent *event; - - event = gtk_event_controller_get_current_event (GTK_EVENT_CONTROLLER (gesture)); - - if (!event) - return FALSE; - - if (gdk_event_get_event_type (event) != GDK_TOUCH_END) - return FALSE; - - if (!gtk_widget_contains (widget, x, y)) - return FALSE; - - return TRUE; -} - static void click_released_cb (GtkGestureClick *gesture, guint n_press, @@ -366,19 +330,11 @@ click_released_cb (GtkGestureClick *gesture, GtkWidget *widget) { GtkButton *button = GTK_BUTTON (widget); - GtkButtonPrivate *priv = gtk_button_get_instance_private (button); - GdkEventSequence *sequence; gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); gtk_button_do_release (button, gtk_widget_is_sensitive (GTK_WIDGET (button)) && - (priv->in_button || - touch_release_in_button (gesture, widget, x, y))); - - sequence = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture)); - - if (sequence) - priv->in_button = FALSE; + gtk_widget_contains (widget, x, y)); } static void @@ -444,7 +400,6 @@ gtk_button_init (GtkButton *button) gtk_widget_set_focusable (GTK_WIDGET (button), TRUE); gtk_widget_set_receives_default (GTK_WIDGET (button), TRUE); - priv->in_button = FALSE; priv->button_down = FALSE; priv->use_underline = FALSE; priv->child_type = WIDGET_CHILD; diff --git a/gtk/gtkcolumnviewcolumn.c b/gtk/gtkcolumnviewcolumn.c index c1e7c18317..478cc5fe3f 100644 --- a/gtk/gtkcolumnviewcolumn.c +++ b/gtk/gtkcolumnviewcolumn.c @@ -357,25 +357,7 @@ gtk_column_view_column_init (GtkColumnViewColumn *self) /** * gtk_column_view_column_new: * @title: (nullable): Title to use for this column - * - * Creates a new #GtkColumnViewColumn. - * - * You most likely want to call gtk_column_view_add_column() next. - * - * Returns: a new #GtkColumnViewColumn - **/ -GtkColumnViewColumn * -gtk_column_view_column_new (const char *title) -{ - return g_object_new (GTK_TYPE_COLUMN_VIEW_COLUMN, - "title", title, - NULL); -} - -/** - * gtk_column_view_column_new_with_factory: - * @title: (nullable): Title to use for this column - * @factory: (transfer full): The factory to populate items with + * @factory: (transfer full) (nullable): The factory to populate items with * * Creates a new #GtkColumnViewColumn that uses the given @factory for * mapping items to widgets. @@ -385,15 +367,15 @@ gtk_column_view_column_new (const char *title) * The function takes ownership of the * argument, so you can write code like * ``` - * column = gtk_column_view_column_new_with_factory (_("Name"), + * column = gtk_column_view_column_new (_("Name"), * gtk_builder_list_item_factory_new_from_resource ("/name.ui")); * ``` * * Returns: a new #GtkColumnViewColumn using the given @factory **/ GtkColumnViewColumn * -gtk_column_view_column_new_with_factory (const char *title, - GtkListItemFactory *factory) +gtk_column_view_column_new (const char *title, + GtkListItemFactory *factory) { GtkColumnViewColumn *result; @@ -404,7 +386,7 @@ gtk_column_view_column_new_with_factory (const char *title, "title", title, NULL); - g_object_unref (factory); + g_clear_object (&factory); return result; } diff --git a/gtk/gtkcolumnviewcolumn.h b/gtk/gtkcolumnviewcolumn.h index 6125f16f76..5baf5b972c 100644 --- a/gtk/gtkcolumnviewcolumn.h +++ b/gtk/gtkcolumnviewcolumn.h @@ -47,9 +47,7 @@ GDK_AVAILABLE_IN_ALL GType gtk_column_view_column_get_type (void) G_GNUC_CONST; GDK_AVAILABLE_IN_ALL -GtkColumnViewColumn * gtk_column_view_column_new (const char *title); -GDK_AVAILABLE_IN_ALL -GtkColumnViewColumn * gtk_column_view_column_new_with_factory (const char *title, +GtkColumnViewColumn * gtk_column_view_column_new (const char *title, GtkListItemFactory *factory); GDK_AVAILABLE_IN_ALL diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index 2e24b21b38..23196edb94 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -29,6 +29,7 @@ #include "gtkadjustment.h" #include "gtkadjustmentprivate.h" #include "gtkbuildable.h" +#include "gtkdragsource.h" #include "gtkeventcontrollermotion.h" #include "gtkeventcontrollerscroll.h" #include "gtkeventcontrollerprivate.h" @@ -282,7 +283,6 @@ typedef struct double drag_start_y; guint kinetic_scrolling : 1; - guint capture_button_press : 1; guint in_drag : 1; guint deceleration_id; @@ -902,7 +902,6 @@ scrolled_window_drag_begin_cb (GtkScrolledWindow *scrolled_window, GtkGesture *gesture) { GtkScrolledWindowPrivate *priv = gtk_scrolled_window_get_instance_private (scrolled_window); - GtkEventSequenceState state; GdkEventSequence *sequence; GtkWidget *event_widget; @@ -915,13 +914,7 @@ scrolled_window_drag_begin_cb (GtkScrolledWindow *scrolled_window, if (event_widget == priv->vscrollbar || event_widget == priv->hscrollbar || (!may_hscroll (scrolled_window) && !may_vscroll (scrolled_window))) - state = GTK_EVENT_SEQUENCE_DENIED; - else if (priv->capture_button_press) - state = GTK_EVENT_SEQUENCE_CLAIMED; - else - return; - - gtk_gesture_set_sequence_state (gesture, sequence, state); + gtk_gesture_set_sequence_state (gesture, sequence, GTK_EVENT_SEQUENCE_DENIED); } static void @@ -953,16 +946,12 @@ scrolled_window_drag_update_cb (GtkScrolledWindow *scrolled_window, GtkAdjustment *vadjustment; double dx, dy; - gtk_scrolled_window_invalidate_overshoot (scrolled_window); - - if (!priv->capture_button_press) - { - GdkEventSequence *sequence; + if (!gtk_drag_check_threshold (GTK_WIDGET (scrolled_window), + 0, 0, offset_x, offset_y)) + return; - sequence = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture)); - gtk_gesture_set_sequence_state (gesture, sequence, - GTK_EVENT_SEQUENCE_CLAIMED); - } + gtk_scrolled_window_invalidate_overshoot (scrolled_window); + gtk_gesture_set_state (gesture, GTK_EVENT_SEQUENCE_CLAIMED); hadjustment = gtk_scrollbar_get_adjustment (GTK_SCROLLBAR (priv->hscrollbar)); if (hadjustment && may_hscroll (scrolled_window)) @@ -2024,7 +2013,6 @@ gtk_scrolled_window_init (GtkScrolledWindow *scrolled_window) 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); controller = gtk_event_controller_motion_new (); gtk_event_controller_set_propagation_phase (controller, GTK_PHASE_CAPTURE); @@ -2551,52 +2539,6 @@ gtk_scrolled_window_get_kinetic_scrolling (GtkScrolledWindow *scrolled_window) return priv->kinetic_scrolling; } -/** - * gtk_scrolled_window_set_capture_button_press: - * @scrolled_window: a #GtkScrolledWindow - * @capture_button_press: %TRUE to capture button presses - * - * Changes the behaviour of @scrolled_window with regard to the initial - * event that possibly starts kinetic scrolling. When @capture_button_press - * is set to %TRUE, the event is captured by the scrolled window, and - * then later replayed if it is meant to go to the child widget. - * - * This should be enabled if any child widgets perform non-reversible - * actions on button press events. If they don't, it might be better to - * set @capture_button_press to %FALSE. - * - * This setting only has an effect if kinetic scrolling is enabled. - */ -void -gtk_scrolled_window_set_capture_button_press (GtkScrolledWindow *scrolled_window, - gboolean capture_button_press) -{ - GtkScrolledWindowPrivate *priv = gtk_scrolled_window_get_instance_private (scrolled_window); - - g_return_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window)); - - priv->capture_button_press = capture_button_press; -} - -/** - * gtk_scrolled_window_get_capture_button_press: - * @scrolled_window: a #GtkScrolledWindow - * - * Return whether button presses are captured during kinetic - * scrolling. See gtk_scrolled_window_set_capture_button_press(). - * - * Returns: %TRUE if button presses are captured during kinetic scrolling - */ -gboolean -gtk_scrolled_window_get_capture_button_press (GtkScrolledWindow *scrolled_window) -{ - GtkScrolledWindowPrivate *priv = gtk_scrolled_window_get_instance_private (scrolled_window); - - g_return_val_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window), FALSE); - - return priv->capture_button_press; -} - static void gtk_scrolled_window_dispose (GObject *object) { diff --git a/gtk/gtkscrolledwindow.h b/gtk/gtkscrolledwindow.h index 06a0c778a4..30cfb334c6 100644 --- a/gtk/gtkscrolledwindow.h +++ b/gtk/gtkscrolledwindow.h @@ -146,12 +146,6 @@ GDK_AVAILABLE_IN_ALL gboolean gtk_scrolled_window_get_kinetic_scrolling (GtkScrolledWindow *scrolled_window); GDK_AVAILABLE_IN_ALL -void gtk_scrolled_window_set_capture_button_press (GtkScrolledWindow *scrolled_window, - gboolean capture_button_press); -GDK_AVAILABLE_IN_ALL -gboolean gtk_scrolled_window_get_capture_button_press (GtkScrolledWindow *scrolled_window); - -GDK_AVAILABLE_IN_ALL void gtk_scrolled_window_set_overlay_scrolling (GtkScrolledWindow *scrolled_window, gboolean overlay_scrolling); GDK_AVAILABLE_IN_ALL diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index add51f814f..1277bfb1b8 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -5480,8 +5480,6 @@ gtk_text_view_click_gesture_pressed (GtkGestureClick *gesture, if (is_touchscreen) { - gtk_gesture_set_sequence_state (GTK_GESTURE (gesture), sequence, - GTK_EVENT_SEQUENCE_CLAIMED); gtk_text_buffer_place_cursor (get_buffer (text_view), &iter); priv->handle_place_time = g_get_monotonic_time (); } diff --git a/tests/testcolumnview.c b/tests/testcolumnview.c index aa7e769393..04f09f1ee5 100644 --- a/tests/testcolumnview.c +++ b/tests/testcolumnview.c @@ -662,7 +662,7 @@ add_extra_columns (GtkColumnView *view, for (i = 0; i < G_N_ELEMENTS(extra_columns); i++) { bytes = g_bytes_new_static (extra_columns[i].factory_xml, strlen (extra_columns[i].factory_xml)); - column = gtk_column_view_column_new_with_factory (extra_columns[i].title, + column = gtk_column_view_column_new (extra_columns[i].title, gtk_builder_list_item_factory_new_from_bytes (scope, bytes)); g_bytes_unref (bytes); sorter = GTK_SORTER (gtk_custom_sorter_new (compare_file_attribute, (gpointer) extra_columns[i].attribute, NULL)); diff --git a/tests/testkineticscrolling.c b/tests/testkineticscrolling.c index 1189cc9d14..e492e5135f 100644 --- a/tests/testkineticscrolling.c +++ b/tests/testkineticscrolling.c @@ -66,7 +66,6 @@ kinetic_scrolling (void) swindow = gtk_scrolled_window_new (); gtk_scrolled_window_set_kinetic_scrolling (GTK_SCROLLED_WINDOW (swindow), TRUE); - gtk_scrolled_window_set_capture_button_press (GTK_SCROLLED_WINDOW (swindow), TRUE); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (swindow), button_grid); gtk_grid_attach (GTK_GRID (grid), swindow, 0, 1, 1, 1); @@ -104,7 +103,6 @@ kinetic_scrolling (void) swindow = gtk_scrolled_window_new (); gtk_scrolled_window_set_kinetic_scrolling (GTK_SCROLLED_WINDOW (swindow), TRUE); - gtk_scrolled_window_set_capture_button_press (GTK_SCROLLED_WINDOW (swindow), TRUE); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (swindow), treeview); gtk_grid_attach (GTK_GRID (grid), swindow, 1, 1, 1, 1); @@ -114,7 +112,6 @@ kinetic_scrolling (void) textview = gtk_text_view_new (); swindow = gtk_scrolled_window_new (); gtk_scrolled_window_set_kinetic_scrolling (GTK_SCROLLED_WINDOW (swindow), TRUE); - gtk_scrolled_window_set_capture_button_press (GTK_SCROLLED_WINDOW (swindow), TRUE); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (swindow), textview); gtk_grid_attach (GTK_GRID (grid), swindow, 2, 1, 1, 1); diff --git a/tests/testlistdnd.c b/tests/testlistdnd.c index 803ff2164d..60c943715d 100644 --- a/tests/testlistdnd.c +++ b/tests/testlistdnd.c @@ -388,7 +388,7 @@ main (int argc, char *argv[]) g_signal_connect (factory, "unbind", G_CALLBACK (unbind_item), NULL); title = g_strdup_printf ("Column %u", i); - column = gtk_column_view_column_new_with_factory (title, factory); + column = gtk_column_view_column_new (title, factory); gtk_column_view_append_column (GTK_COLUMN_VIEW (cv), column); g_object_unref (column); g_free (title); |