summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimm Bäder <mail@baedert.org>2018-10-31 13:39:08 +0000
committerTimm Bäder <mail@baedert.org>2018-10-31 13:39:08 +0000
commit60b0f48fbcdf45b8281589ec3e21cf57f002c550 (patch)
tree08216bb8c13443dbe417258f974e8d14f0631833
parentb4acf8160936bfc27ad5e255d0cfe4500cdbd7f7 (diff)
parentf3674688bffb55eca1d365961bb0301d24068433 (diff)
downloadgtk+-60b0f48fbcdf45b8281589ec3e21cf57f002c550.tar.gz
Merge branch 'wip/carlosg/public-legacy-controller' into 'master'
Make legacy controller public See merge request GNOME/gtk!388
-rw-r--r--gtk/gtk.h1
-rw-r--r--gtk/gtkeventcontrollerlegacy.c52
-rw-r--r--gtk/gtkeventcontrollerlegacy.h (renamed from gtk/gtkeventcontrollerlegacyprivate.h)22
-rw-r--r--gtk/gtkwidget.c52
-rw-r--r--gtk/gtkwidgetprivate.h5
-rw-r--r--gtk/meson.build3
-rw-r--r--tests/testgtk.c158
-rw-r--r--tests/testpopup.c36
-rw-r--r--tests/testwindowsize.c26
-rw-r--r--testsuite/gtk/gestures.c28
10 files changed, 120 insertions, 263 deletions
diff --git a/gtk/gtk.h b/gtk/gtk.h
index 823c079e6e..cf89eca9ab 100644
--- a/gtk/gtk.h
+++ b/gtk/gtk.h
@@ -94,6 +94,7 @@
#include <gtk/gtkenums.h>
#include <gtk/gtkeventcontroller.h>
#include <gtk/gtkeventcontrollerkey.h>
+#include <gtk/gtkeventcontrollerlegacy.h>
#include <gtk/gtkeventcontrollermotion.h>
#include <gtk/gtkeventcontrollerscroll.h>
#include <gtk/gtkexpander.h>
diff --git a/gtk/gtkeventcontrollerlegacy.c b/gtk/gtkeventcontrollerlegacy.c
index ebe852249b..33b38203f5 100644
--- a/gtk/gtkeventcontrollerlegacy.c
+++ b/gtk/gtkeventcontrollerlegacy.c
@@ -18,7 +18,28 @@
*/
#include "config.h"
-#include "gtkeventcontrollerlegacyprivate.h"
+#include "gtkeventcontrollerlegacy.h"
+#include "gtkeventcontrollerprivate.h"
+#include "gtkmarshalers.h"
+#include "gtkintl.h"
+#include "gtkprivate.h"
+
+struct _GtkEventControllerLegacy
+{
+ GtkEventController parent_instance;
+};
+
+struct _GtkEventControllerLegacyClass
+{
+ GtkEventControllerClass parent_class;
+};
+
+enum {
+ EVENT,
+ N_SIGNALS
+};
+
+static guint signals[N_SIGNALS] = { 0, };
G_DEFINE_TYPE (GtkEventControllerLegacy, gtk_event_controller_legacy,
GTK_TYPE_EVENT_CONTROLLER)
@@ -27,9 +48,11 @@ static gboolean
gtk_event_controller_legacy_handle_event (GtkEventController *controller,
const GdkEvent *event)
{
- GtkWidget *widget = gtk_event_controller_get_widget (controller);
+ gboolean handled;
- return gtk_widget_emit_event_signals (widget, event);
+ g_signal_emit (controller, signals[EVENT], 0, event, &handled);
+
+ return handled;
}
static void
@@ -38,6 +61,29 @@ gtk_event_controller_legacy_class_init (GtkEventControllerLegacyClass *klass)
GtkEventControllerClass *controller_class = GTK_EVENT_CONTROLLER_CLASS (klass);
controller_class->handle_event = gtk_event_controller_legacy_handle_event;
+
+ /**
+ * GtkEventController::event:
+ * @controller: the object which received the signal.
+ * @event: the #GdkEvent which triggered this signal
+ *
+ * The GTK+ main loop will emit this signal for each GDK event delivered
+ * to @controller.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event
+ * and to cancel the emission of the second specific ::event signal.
+ * %FALSE to propagate the event further.
+ */
+ signals[EVENT] =
+ g_signal_new (I_("event"),
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ 0, _gtk_boolean_handled_accumulator, NULL,
+ _gtk_marshal_BOOLEAN__OBJECT,
+ G_TYPE_BOOLEAN, 1,
+ GDK_TYPE_EVENT);
+ g_signal_set_va_marshaller (signals[EVENT], G_TYPE_FROM_CLASS (klass),
+ _gtk_marshal_BOOLEAN__OBJECTv);
}
static void
diff --git a/gtk/gtkeventcontrollerlegacyprivate.h b/gtk/gtkeventcontrollerlegacy.h
index 61059a0f5e..748bebb59a 100644
--- a/gtk/gtkeventcontrollerlegacyprivate.h
+++ b/gtk/gtkeventcontrollerlegacy.h
@@ -20,8 +20,11 @@
#ifndef __GTK_EVENT_CONTROLLER_LEGACY_H__
#define __GTK_EVENT_CONTROLLER_LEGACY_H__
-#include "gtkeventcontrollerprivate.h"
-#include "gtkwidgetprivate.h"
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <gtk/gtkeventcontroller.h>
G_BEGIN_DECLS
@@ -35,17 +38,12 @@ G_BEGIN_DECLS
typedef struct _GtkEventControllerLegacy GtkEventControllerLegacy;
typedef struct _GtkEventControllerLegacyClass GtkEventControllerLegacyClass;
-struct _GtkEventControllerLegacy
-{
- GtkEventController parent_instance;
-};
-
-struct _GtkEventControllerLegacyClass
-{
- GtkEventControllerClass parent_class;
-};
-
+GDK_AVAILABLE_IN_ALL
GType gtk_event_controller_legacy_get_type (void) G_GNUC_CONST;
+
+GDK_AVAILABLE_IN_ALL
GtkEventController *gtk_event_controller_legacy_new (void);
+G_END_DECLS
+
#endif /* __GTK_EVENT_CONTROLLER_LEGACY_H__ */
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 3044231eab..b496e6954c 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -1690,30 +1690,6 @@ gtk_widget_class_init (GtkWidgetClass *klass)
GTK_TYPE_DIRECTION_TYPE);
/**
- * GtkWidget::event:
- * @widget: the object which received the signal.
- * @event: the #GdkEvent which triggered this signal
- *
- * The GTK+ main loop will emit this signal for each GDK event delivered
- * to a widget.
- *
- * Returns: %TRUE to stop other handlers from being invoked for the event
- * and to cancel the emission of the second specific ::event signal.
- * %FALSE to propagate the event further.
- */
- widget_signals[EVENT] =
- g_signal_new (I_("event"),
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST | G_SIGNAL_DEPRECATED,
- G_STRUCT_OFFSET (GtkWidgetClass, event),
- _gtk_boolean_handled_accumulator, NULL,
- _gtk_marshal_BOOLEAN__OBJECT,
- G_TYPE_BOOLEAN, 1,
- GDK_TYPE_EVENT);
- g_signal_set_va_marshaller (widget_signals[EVENT], G_TYPE_FROM_CLASS (klass),
- _gtk_marshal_BOOLEAN__OBJECTv);
-
- /**
* GtkWidget::drag-leave:
* @widget: the object which received the signal.
* @context: the drag context
@@ -5266,18 +5242,6 @@ gtk_widget_event_internal (GtkWidget *widget,
if (!event_surface_is_still_viewable (event))
return TRUE;
- /* Non input events get handled right away */
- switch ((guint) event->any.type)
- {
- case GDK_NOTHING:
- case GDK_DELETE:
- case GDK_DESTROY:
- case GDK_CONFIGURE:
- return gtk_widget_emit_event_signals (widget, event);
- default:
- break;
- }
-
event_copy = gdk_event_copy (event);
translate_event_coordinates (event_copy, widget);
@@ -5306,22 +5270,6 @@ gtk_widget_event_internal (GtkWidget *widget,
return return_val;
}
-gboolean
-gtk_widget_emit_event_signals (GtkWidget *widget,
- const GdkEvent *event)
-{
- gboolean return_val = FALSE, handled;
-
- g_object_ref (widget);
-
- g_signal_emit (widget, widget_signals[EVENT], 0, event, &handled);
- return_val |= handled | !WIDGET_REALIZED_FOR_EVENT (widget, event);
-
- g_object_unref (widget);
-
- return return_val;
-}
-
/**
* gtk_widget_activate:
* @widget: a #GtkWidget that’s activatable
diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h
index 0cadb237fb..f658811358 100644
--- a/gtk/gtkwidgetprivate.h
+++ b/gtk/gtkwidgetprivate.h
@@ -324,11 +324,6 @@ void gtk_widget_set_pass_through (GtkWidget *widget,
gboolean pass_through);
gboolean gtk_widget_get_pass_through (GtkWidget *widget);
-gboolean gtk_widget_emit_event_signals (GtkWidget *widget,
- const GdkEvent *event);
-
-void gtk_widget_init_legacy_controller (GtkWidget *widget);
-
void gtk_widget_get_origin_relative_to_parent (GtkWidget *widget,
int *origin_x,
int *origin_y);
diff --git a/gtk/meson.build b/gtk/meson.build
index 96a0c4283f..8559ed0f7c 100644
--- a/gtk/meson.build
+++ b/gtk/meson.build
@@ -101,7 +101,6 @@ gtk_private_sources = files([
'gtkcssvalue.c',
'gtkcsswidgetnode.c',
'gtkcsswin32sizevalue.c',
- 'gtkeventcontrollerlegacy.c',
'gtkfilechooserembed.c',
'gtkfilechooserentry.c',
'gtkfilechoosererrorstack.c',
@@ -399,7 +398,6 @@ gtk_public_sources = files([
gtk_private_type_headers = files([
'gtkcsstypesprivate.h',
'gtktexthandleprivate.h',
- 'gtkeventcontrollerlegacyprivate.h',
])
gtk_public_headers = files([
@@ -471,6 +469,7 @@ gtk_public_headers = files([
'gtkeventcontrollerkey.h',
'gtkeventcontrollerscroll.h',
'gtkeventcontrollermotion.h',
+ 'gtkeventcontrollerlegacy.h',
'gtkexpander.h',
'gtkfilechooser.h',
'gtkfilechooserbutton.h',
diff --git a/tests/testgtk.c b/tests/testgtk.c
index 4bcf775b55..c975459fc7 100644
--- a/tests/testgtk.c
+++ b/tests/testgtk.c
@@ -1325,138 +1325,6 @@ create_rotated_text (GtkWidget *widget)
/*
- * Saved Position
- */
-gint upositionx = 0;
-gint upositiony = 0;
-
-static gboolean
-configure_event (GtkWidget *window)
-{
- GtkLabel *lx;
- GtkLabel *ly;
- gchar buffer[64];
-
- lx = g_object_get_data (G_OBJECT (window), "x");
- ly = g_object_get_data (G_OBJECT (window), "y");
-
- gdk_surface_get_root_origin (gtk_widget_get_surface (window),
- &upositionx, &upositiony);
- sprintf (buffer, "%d", upositionx);
- gtk_label_set_text (lx, buffer);
- sprintf (buffer, "%d", upositiony);
- gtk_label_set_text (ly, buffer);
-
- return FALSE;
-}
-
-static void
-uposition_stop_configure (GtkToggleButton *toggle,
- GObject *window)
-{
- if (gtk_toggle_button_get_active (toggle))
- g_signal_handlers_block_by_func (window, G_CALLBACK (configure_event), NULL);
- else
- g_signal_handlers_unblock_by_func (window, G_CALLBACK (configure_event), NULL);
-}
-
-static void
-create_saved_position (GtkWidget *widget)
-{
- static GtkWidget *window = NULL;
-
- if (!window)
- {
- GtkWidget *hbox;
- GtkWidget *main_vbox;
- GtkWidget *vbox;
- GtkWidget *x_label;
- GtkWidget *y_label;
- GtkWidget *button;
- GtkWidget *label;
- GtkWidget *any;
-
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title (GTK_WINDOW (window), "Saved Position");
- g_signal_connect (window, "event", G_CALLBACK (configure_event), NULL);
-
- gtk_window_move (GTK_WINDOW (window), upositionx, upositiony);
-
- gtk_window_set_display (GTK_WINDOW (window),
- gtk_widget_get_display (widget));
-
-
- g_signal_connect (window, "destroy",
- G_CALLBACK (gtk_widget_destroyed),
- &window);
-
- main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
- gtk_container_add (GTK_CONTAINER (window), main_vbox);
-
- button = g_object_new (GTK_TYPE_TOGGLE_BUTTON,
- "label", "Stop Events",
- "active", FALSE,
- "visible", TRUE,
- NULL);
- g_signal_connect (button, "clicked", G_CALLBACK (uposition_stop_configure), window);
-
- vbox =
- g_object_new (GTK_TYPE_BOX,
- "orientation", GTK_ORIENTATION_VERTICAL,
- "homogeneous", FALSE,
- "spacing", 5,
- NULL);
- gtk_container_add (GTK_CONTAINER (main_vbox), vbox);
- gtk_container_add (GTK_CONTAINER (vbox), button);
-
- hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_box_pack_start (GTK_BOX (vbox), hbox);
-
- label = gtk_label_new ("X Origin : ");
- gtk_widget_set_halign (label, GTK_ALIGN_START);
- gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
- gtk_box_pack_start (GTK_BOX (hbox), label);
-
- x_label = gtk_label_new ("");
- gtk_box_pack_start (GTK_BOX (hbox), x_label);
- g_object_set_data (G_OBJECT (window), "x", x_label);
-
- hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_box_pack_start (GTK_BOX (vbox), hbox);
-
- label = gtk_label_new ("Y Origin : ");
- gtk_widget_set_halign (label, GTK_ALIGN_START);
- gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
- gtk_box_pack_start (GTK_BOX (hbox), label);
-
- y_label = gtk_label_new ("");
- gtk_box_pack_start (GTK_BOX (hbox), y_label);
- g_object_set_data (G_OBJECT (window), "y", y_label);
-
- any =
- g_object_new (gtk_separator_get_type (),
- "GtkWidget::visible", TRUE,
- NULL);
- gtk_box_pack_start (GTK_BOX (main_vbox), any);
-
- hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_box_pack_start (GTK_BOX (main_vbox), hbox);
-
- button = gtk_button_new_with_label ("Close");
- g_signal_connect_swapped (button, "clicked",
- G_CALLBACK (gtk_widget_destroy),
- window);
- gtk_box_pack_start (GTK_BOX (hbox), button);
- gtk_widget_set_can_default (button, TRUE);
- gtk_widget_grab_default (button);
-
- gtk_widget_show (window);
- }
- else
- gtk_widget_destroy (window);
-}
-
-/*
* GtkPixmap
*/
@@ -5695,27 +5563,26 @@ create_surface_states (GtkWidget *widget)
* Window sizing
*/
-static gint
-configure_event_callback (GtkWidget *widget,
- GdkEvent *event,
- gpointer data)
+static void
+size_allocate_callback (GtkWidget *widget,
+ GtkAllocation *allocation,
+ int baseline,
+ gpointer data)
{
GtkWidget *label = data;
gchar *msg;
gint x, y;
-
+
gtk_window_get_position (GTK_WINDOW (widget), &x, &y);
-
- msg = g_strdup_printf ("event: %d,%d %d x %d\n"
+
+ msg = g_strdup_printf ("size: %d x %d\n"
"position: %d, %d",
- 0, 0, 0, 0, // FIXME
+ allocation->width, allocation->height,
x, y);
-
+
gtk_label_set_text (GTK_LABEL (label), msg);
g_free (msg);
-
- return FALSE;
}
static void
@@ -5867,10 +5734,10 @@ window_controls (GtkWidget *window)
gtk_container_add (GTK_CONTAINER (control_window), vbox);
- label = gtk_label_new ("<no configure events>");
+ label = gtk_label_new ("<no size>");
gtk_box_pack_start (GTK_BOX (vbox), label);
- g_signal_connect (window, "event", G_CALLBACK (configure_event_callback), label);
+ g_signal_connect_after (window, "size-allocate", G_CALLBACK (size_allocate_callback), label);
adjustment = gtk_adjustment_new (10.0, -2000.0, 2000.0, 1.0, 5.0, 0.0);
spin = gtk_spin_button_new (adjustment, 0, 0);
@@ -7034,7 +6901,6 @@ struct {
{ "radio buttons", create_radio_buttons },
{ "range controls", create_range_controls },
{ "rotated text", create_rotated_text },
- { "saved position", create_saved_position },
{ "scrolled windows", create_scrolled_windows },
{ "size groups", create_size_groups },
{ "spinbutton", create_spins },
diff --git a/tests/testpopup.c b/tests/testpopup.c
index 504c67d1ce..085d08ca2f 100644
--- a/tests/testpopup.c
+++ b/tests/testpopup.c
@@ -12,29 +12,28 @@ draw_popup (GtkDrawingArea *da,
}
static gboolean
-place_popup (GtkWidget *parent,
- GdkEvent *event,
- GtkWidget *popup)
+place_popup (GtkEventControllerMotion *motion,
+ gdouble x,
+ gdouble y,
+ GtkWidget *popup)
{
- gint width, height;
- gdouble x, y;
-
- if (gdk_event_get_event_type (event) == GDK_MOTION_NOTIFY)
- {
- gtk_window_get_size (GTK_WINDOW (popup), &width, &height);
- gdk_event_get_root_coords (event, &x, &y);
- gtk_window_move (GTK_WINDOW (popup),
- (int) x - width / 2,
- (int) y - height / 2);
- }
-
- return GDK_EVENT_PROPAGATE;
+ gint width, height, win_x, win_y;
+ GtkWidget *widget;
+
+ widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (motion));
+
+ gtk_window_get_size (GTK_WINDOW (popup), &width, &height);
+ gtk_window_get_position (GTK_WINDOW (widget), &win_x, &win_y);
+ gtk_window_move (GTK_WINDOW (popup),
+ (int) win_x + x - width / 2,
+ (int) win_y + y - height / 2);
}
static gboolean
on_map (GtkWidget *parent)
{
GtkWidget *popup, *da;
+ GtkEventController *motion;
popup = gtk_window_new (GTK_WINDOW_POPUP);
da = gtk_drawing_area_new ();
@@ -43,7 +42,10 @@ on_map (GtkWidget *parent)
gtk_widget_set_size_request (GTK_WIDGET (popup), 20, 20);
gtk_window_set_transient_for (GTK_WINDOW (popup), GTK_WINDOW (parent));
- g_signal_connect (parent, "event", G_CALLBACK (place_popup), popup);
+
+ motion = gtk_event_controller_motion_new ();
+ gtk_widget_add_controller (parent, motion);
+ g_signal_connect (motion, "motion", G_CALLBACK (place_popup), popup);
gtk_widget_show (popup);
diff --git a/tests/testwindowsize.c b/tests/testwindowsize.c
index 6e62dd0a60..e938072c33 100644
--- a/tests/testwindowsize.c
+++ b/tests/testwindowsize.c
@@ -8,21 +8,14 @@ static GtkWidget *default_width_spin;
static GtkWidget *default_height_spin;
static GtkWidget *resizable_check;
-static gboolean
-configure_event_cb (GtkWidget *window, GdkEvent *event, GtkLabel *label)
+static void
+size_changed_cb (GdkSurface *surface, int width, int height, GtkLabel *label)
{
- if (gdk_event_get_event_type (event) == GDK_CONFIGURE)
- {
- gchar *str;
- gint width, height;
-
- gtk_window_get_size (GTK_WINDOW (window), &width, &height);
- str = g_strdup_printf ("%d x %d", width, height);
- gtk_label_set_label (label, str);
- g_free (str);
- }
-
- return GDK_EVENT_PROPAGATE;
+ gchar *str;
+
+ str = g_strdup_printf ("%d x %d", width, height);
+ gtk_label_set_label (label, str);
+ g_free (str);
}
static void
@@ -71,8 +64,9 @@ show_dialog (void)
//gtk_widget_show (label);
gtk_dialog_add_action_widget (GTK_DIALOG (dialog), label, GTK_RESPONSE_HELP);
- g_signal_connect (dialog, "event",
- G_CALLBACK (configure_event_cb), label);
+ gtk_widget_realize (dialog);
+ g_signal_connect (gtk_widget_get_surface (dialog), "size-changed",
+ G_CALLBACK (size_changed_cb), label);
gtk_dialog_run (GTK_DIALOG (dialog));
diff --git a/testsuite/gtk/gestures.c b/testsuite/gtk/gestures.c
index 42aac2d65f..5591f1ad48 100644
--- a/testsuite/gtk/gestures.c
+++ b/testsuite/gtk/gestures.c
@@ -198,16 +198,20 @@ state_nick (GtkEventSequenceState state)
}
typedef struct {
+ GtkEventController *controller;
GString *str;
gboolean exit;
} LegacyData;
static gboolean
-legacy_cb (GtkWidget *w, GdkEvent *button, gpointer data)
+legacy_cb (GtkEventControllerLegacy *c, GdkEvent *button, gpointer data)
{
if (gdk_event_get_event_type (button) == GDK_BUTTON_PRESS)
{
LegacyData *ld = data;
+ GtkWidget *w;
+
+ w = gtk_event_controller_get_widget (ld->controller);
if (ld->str->len > 0)
g_string_append (ld->str, ", ");
@@ -377,9 +381,13 @@ add_legacy (GtkWidget *w, GString *str, gboolean exit)
LegacyData *data;
data = g_new (LegacyData, 1);
+ data->controller = gtk_event_controller_legacy_new ();
data->str = str;
data->exit = exit;
- g_signal_connect (w, "event", G_CALLBACK (legacy_cb), data);
+
+ gtk_event_controller_set_propagation_phase (data->controller, GTK_PHASE_BUBBLE);
+ gtk_widget_add_controller (w, data->controller);
+ g_signal_connect (data->controller, "event", G_CALLBACK (legacy_cb), data);
}
static void
@@ -457,6 +465,10 @@ test_mixed (void)
str = g_string_new ("");
+ add_legacy (A, str, GDK_EVENT_PROPAGATE);
+ add_legacy (B, str, GDK_EVENT_PROPAGATE);
+ add_legacy (C, str, GDK_EVENT_PROPAGATE);
+
add_gesture (A, "a1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
add_gesture (B, "b1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
add_gesture (C, "c1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
@@ -467,10 +479,6 @@ test_mixed (void)
add_gesture (B, "b3", GTK_PHASE_BUBBLE, str, GTK_EVENT_SEQUENCE_NONE);
add_gesture (C, "c3", GTK_PHASE_BUBBLE, str, GTK_EVENT_SEQUENCE_NONE);
- add_legacy (A, str, GDK_EVENT_PROPAGATE);
- add_legacy (B, str, GDK_EVENT_PROPAGATE);
- add_legacy (C, str, GDK_EVENT_PROPAGATE);
-
gtk_widget_get_allocation (A, &allocation);
point_update (&mouse_state, A, allocation.width / 2, allocation.height / 2);
@@ -516,6 +524,10 @@ test_early_exit (void)
str = g_string_new ("");
+ add_legacy (A, str, GDK_EVENT_PROPAGATE);
+ add_legacy (B, str, GDK_EVENT_STOP);
+ add_legacy (C, str, GDK_EVENT_PROPAGATE);
+
add_gesture (A, "a1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
add_gesture (B, "b1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
add_gesture (C, "c1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
@@ -524,10 +536,6 @@ test_early_exit (void)
add_gesture (B, "b3", GTK_PHASE_BUBBLE, str, GTK_EVENT_SEQUENCE_NONE);
add_gesture (C, "c3", GTK_PHASE_BUBBLE, str, GTK_EVENT_SEQUENCE_NONE);
- add_legacy (A, str, GDK_EVENT_PROPAGATE);
- add_legacy (B, str, GDK_EVENT_STOP);
- add_legacy (C, str, GDK_EVENT_PROPAGATE);
-
gtk_widget_get_allocation (A, &allocation);
point_update (&mouse_state, A, allocation.width / 2, allocation.height / 2);