mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Connect signals in swapped form. (flutter/engine#50705)
This makes them look more like methods.
This commit is contained in:
parent
46354c09fe
commit
0c1e0846c0
@ -95,9 +95,7 @@ G_DEFINE_TYPE_WITH_CODE(
|
||||
fl_view_text_input_delegate_iface_init))
|
||||
|
||||
// Signal handler for GtkWidget::delete-event
|
||||
static gboolean window_delete_event_cb(GtkWidget* widget,
|
||||
GdkEvent* event,
|
||||
FlView* self) {
|
||||
static gboolean window_delete_event_cb(FlView* self) {
|
||||
fl_platform_plugin_request_app_exit(self->platform_plugin);
|
||||
// Stop the event from propagating.
|
||||
return TRUE;
|
||||
@ -356,9 +354,8 @@ static void fl_view_text_input_delegate_iface_init(
|
||||
}
|
||||
|
||||
// Signal handler for GtkWidget::button-press-event
|
||||
static gboolean button_press_event_cb(GtkWidget* widget,
|
||||
GdkEventButton* button_event,
|
||||
FlView* self) {
|
||||
static gboolean button_press_event_cb(FlView* self,
|
||||
GdkEventButton* button_event) {
|
||||
GdkEvent* event = reinterpret_cast<GdkEvent*>(button_event);
|
||||
|
||||
// Flutter doesn't handle double and triple click events.
|
||||
@ -374,17 +371,14 @@ static gboolean button_press_event_cb(GtkWidget* widget,
|
||||
}
|
||||
|
||||
// Signal handler for GtkWidget::button-release-event
|
||||
static gboolean button_release_event_cb(GtkWidget* widget,
|
||||
GdkEventButton* button_event,
|
||||
FlView* self) {
|
||||
static gboolean button_release_event_cb(FlView* self,
|
||||
GdkEventButton* button_event) {
|
||||
GdkEvent* event = reinterpret_cast<GdkEvent*>(button_event);
|
||||
return send_pointer_button_event(self, event);
|
||||
}
|
||||
|
||||
// Signal handler for GtkWidget::scroll-event
|
||||
static gboolean scroll_event_cb(GtkWidget* widget,
|
||||
GdkEventScroll* event,
|
||||
FlView* self) {
|
||||
static gboolean scroll_event_cb(FlView* self, GdkEventScroll* event) {
|
||||
// TODO(robert-ancell): Update to use GtkEventControllerScroll when we can
|
||||
// depend on GTK 3.24.
|
||||
|
||||
@ -395,9 +389,8 @@ static gboolean scroll_event_cb(GtkWidget* widget,
|
||||
}
|
||||
|
||||
// Signal handler for GtkWidget::motion-notify-event
|
||||
static gboolean motion_notify_event_cb(GtkWidget* widget,
|
||||
GdkEventMotion* motion_event,
|
||||
FlView* self) {
|
||||
static gboolean motion_notify_event_cb(FlView* self,
|
||||
GdkEventMotion* motion_event) {
|
||||
GdkEvent* event = reinterpret_cast<GdkEvent*>(motion_event);
|
||||
|
||||
if (self->engine == nullptr) {
|
||||
@ -425,9 +418,8 @@ static gboolean motion_notify_event_cb(GtkWidget* widget,
|
||||
}
|
||||
|
||||
// Signal handler for GtkWidget::enter-notify-event
|
||||
static gboolean enter_notify_event_cb(GtkWidget* widget,
|
||||
GdkEventCrossing* crossing_event,
|
||||
FlView* self) {
|
||||
static gboolean enter_notify_event_cb(FlView* self,
|
||||
GdkEventCrossing* crossing_event) {
|
||||
GdkEvent* event = reinterpret_cast<GdkEvent*>(crossing_event);
|
||||
|
||||
if (self->engine == nullptr) {
|
||||
@ -440,9 +432,8 @@ static gboolean enter_notify_event_cb(GtkWidget* widget,
|
||||
}
|
||||
|
||||
// Signal handler for GtkWidget::leave-notify-event
|
||||
static gboolean leave_notify_event_cb(GtkWidget* widget,
|
||||
GdkEventCrossing* crossing_event,
|
||||
FlView* self) {
|
||||
static gboolean leave_notify_event_cb(FlView* self,
|
||||
GdkEventCrossing* crossing_event) {
|
||||
GdkEvent* event = reinterpret_cast<GdkEvent*>(crossing_event);
|
||||
|
||||
guint event_time = gdk_event_get_time(event);
|
||||
@ -472,7 +463,7 @@ static gboolean leave_notify_event_cb(GtkWidget* widget,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void keymap_keys_changed_cb(GdkKeymap* keymapf, FlView* self) {
|
||||
static void keymap_keys_changed_cb(FlView* self) {
|
||||
if (self->keyboard_layout_notifier == nullptr) {
|
||||
return;
|
||||
}
|
||||
@ -480,50 +471,36 @@ static void keymap_keys_changed_cb(GdkKeymap* keymapf, FlView* self) {
|
||||
self->keyboard_layout_notifier();
|
||||
}
|
||||
|
||||
static void gesture_rotation_begin_cb(GtkGestureRotate* gesture,
|
||||
GdkEventSequence* sequence,
|
||||
FlView* self) {
|
||||
static void gesture_rotation_begin_cb(FlView* self) {
|
||||
fl_scrolling_manager_handle_rotation_begin(self->scrolling_manager);
|
||||
}
|
||||
|
||||
static void gesture_rotation_update_cb(GtkGestureRotate* widget,
|
||||
static void gesture_rotation_update_cb(FlView* self,
|
||||
gdouble rotation,
|
||||
gdouble delta,
|
||||
FlView* self) {
|
||||
gdouble delta) {
|
||||
fl_scrolling_manager_handle_rotation_update(self->scrolling_manager,
|
||||
rotation);
|
||||
}
|
||||
|
||||
static void gesture_rotation_end_cb(GtkGestureRotate* gesture,
|
||||
GdkEventSequence* sequence,
|
||||
FlView* self) {
|
||||
static void gesture_rotation_end_cb(FlView* self) {
|
||||
fl_scrolling_manager_handle_rotation_end(self->scrolling_manager);
|
||||
}
|
||||
|
||||
static void gesture_zoom_begin_cb(GtkGestureZoom* gesture,
|
||||
GdkEventSequence* sequence,
|
||||
FlView* self) {
|
||||
static void gesture_zoom_begin_cb(FlView* self) {
|
||||
fl_scrolling_manager_handle_zoom_begin(self->scrolling_manager);
|
||||
}
|
||||
|
||||
static void gesture_zoom_update_cb(GtkGestureZoom* widget,
|
||||
gdouble scale,
|
||||
FlView* self) {
|
||||
static void gesture_zoom_update_cb(FlView* self, gdouble scale) {
|
||||
fl_scrolling_manager_handle_zoom_update(self->scrolling_manager, scale);
|
||||
}
|
||||
|
||||
static void gesture_zoom_end_cb(GtkGestureZoom* gesture,
|
||||
GdkEventSequence* sequence,
|
||||
FlView* self) {
|
||||
static void gesture_zoom_end_cb(FlView* self) {
|
||||
fl_scrolling_manager_handle_zoom_end(self->scrolling_manager);
|
||||
}
|
||||
|
||||
static gboolean window_state_event_cb(GtkWidget* widget,
|
||||
GdkEvent* event,
|
||||
gpointer user_data) {
|
||||
g_return_val_if_fail(FL_IS_VIEW(user_data), FALSE);
|
||||
g_return_val_if_fail(FL_IS_ENGINE(FL_VIEW(user_data)->engine), FALSE);
|
||||
FlView* self = FL_VIEW(user_data);
|
||||
static gboolean window_state_event_cb(FlView* self, GdkEvent* event) {
|
||||
g_return_val_if_fail(FL_IS_ENGINE(self->engine), FALSE);
|
||||
|
||||
GdkWindowState state = event->window_state.new_window_state;
|
||||
GdkWindowState previous_state = self->window_state;
|
||||
self->window_state = state;
|
||||
@ -542,8 +519,7 @@ static gboolean window_state_event_cb(GtkWidget* widget,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void realize_cb(GtkWidget* widget) {
|
||||
FlView* self = FL_VIEW(widget);
|
||||
static void realize_cb(FlView* self) {
|
||||
g_autoptr(GError) error = nullptr;
|
||||
|
||||
// Handle requests by the user to close the application.
|
||||
@ -551,13 +527,13 @@ static void realize_cb(GtkWidget* widget) {
|
||||
|
||||
// Listen to window state changes.
|
||||
self->window_state_cb_id =
|
||||
g_signal_connect(toplevel_window, "window-state-event",
|
||||
G_CALLBACK(window_state_event_cb), self);
|
||||
g_signal_connect_swapped(toplevel_window, "window-state-event",
|
||||
G_CALLBACK(window_state_event_cb), self);
|
||||
self->window_state =
|
||||
gdk_window_get_state(gtk_widget_get_window(toplevel_window));
|
||||
|
||||
g_signal_connect(toplevel_window, "delete-event",
|
||||
G_CALLBACK(window_delete_event_cb), self);
|
||||
g_signal_connect_swapped(toplevel_window, "delete-event",
|
||||
G_CALLBACK(window_delete_event_cb), self);
|
||||
|
||||
init_keyboard(self);
|
||||
|
||||
@ -574,8 +550,7 @@ static void realize_cb(GtkWidget* widget) {
|
||||
handle_geometry_changed(self);
|
||||
}
|
||||
|
||||
static void configure_cb(GtkWidget* widget, GdkEventConfigure event) {
|
||||
FlView* self = FL_VIEW(widget);
|
||||
static void size_allocate_cb(FlView* self) {
|
||||
handle_geometry_changed(self);
|
||||
}
|
||||
|
||||
@ -609,34 +584,37 @@ static void fl_view_constructed(GObject* object) {
|
||||
GDK_BUTTON_RELEASE_MASK | GDK_SCROLL_MASK |
|
||||
GDK_SMOOTH_SCROLL_MASK);
|
||||
|
||||
g_signal_connect(self->event_box, "button-press-event",
|
||||
G_CALLBACK(button_press_event_cb), self);
|
||||
g_signal_connect(self->event_box, "button-release-event",
|
||||
G_CALLBACK(button_release_event_cb), self);
|
||||
g_signal_connect(self->event_box, "scroll-event", G_CALLBACK(scroll_event_cb),
|
||||
self);
|
||||
g_signal_connect(self->event_box, "motion-notify-event",
|
||||
G_CALLBACK(motion_notify_event_cb), self);
|
||||
g_signal_connect(self->event_box, "enter-notify-event",
|
||||
G_CALLBACK(enter_notify_event_cb), self);
|
||||
g_signal_connect(self->event_box, "leave-notify-event",
|
||||
G_CALLBACK(leave_notify_event_cb), self);
|
||||
self->keymap_keys_changed_cb_id = g_signal_connect(
|
||||
g_signal_connect_swapped(self->event_box, "button-press-event",
|
||||
G_CALLBACK(button_press_event_cb), self);
|
||||
g_signal_connect_swapped(self->event_box, "button-release-event",
|
||||
G_CALLBACK(button_release_event_cb), self);
|
||||
g_signal_connect_swapped(self->event_box, "scroll-event",
|
||||
G_CALLBACK(scroll_event_cb), self);
|
||||
g_signal_connect_swapped(self->event_box, "motion-notify-event",
|
||||
G_CALLBACK(motion_notify_event_cb), self);
|
||||
g_signal_connect_swapped(self->event_box, "enter-notify-event",
|
||||
G_CALLBACK(enter_notify_event_cb), self);
|
||||
g_signal_connect_swapped(self->event_box, "leave-notify-event",
|
||||
G_CALLBACK(leave_notify_event_cb), self);
|
||||
self->keymap_keys_changed_cb_id = g_signal_connect_swapped(
|
||||
self->keymap, "keys-changed", G_CALLBACK(keymap_keys_changed_cb), self);
|
||||
GtkGesture* zoom = gtk_gesture_zoom_new(self->event_box);
|
||||
g_signal_connect(zoom, "begin", G_CALLBACK(gesture_zoom_begin_cb), self);
|
||||
g_signal_connect(zoom, "scale-changed", G_CALLBACK(gesture_zoom_update_cb),
|
||||
self);
|
||||
g_signal_connect(zoom, "end", G_CALLBACK(gesture_zoom_end_cb), self);
|
||||
g_signal_connect_swapped(zoom, "begin", G_CALLBACK(gesture_zoom_begin_cb),
|
||||
self);
|
||||
g_signal_connect_swapped(zoom, "scale-changed",
|
||||
G_CALLBACK(gesture_zoom_update_cb), self);
|
||||
g_signal_connect_swapped(zoom, "end", G_CALLBACK(gesture_zoom_end_cb), self);
|
||||
GtkGesture* rotate = gtk_gesture_rotate_new(self->event_box);
|
||||
g_signal_connect(rotate, "begin", G_CALLBACK(gesture_rotation_begin_cb),
|
||||
self);
|
||||
g_signal_connect(rotate, "angle-changed",
|
||||
G_CALLBACK(gesture_rotation_update_cb), self);
|
||||
g_signal_connect(rotate, "end", G_CALLBACK(gesture_rotation_end_cb), self);
|
||||
g_signal_connect_swapped(rotate, "begin",
|
||||
G_CALLBACK(gesture_rotation_begin_cb), self);
|
||||
g_signal_connect_swapped(rotate, "angle-changed",
|
||||
G_CALLBACK(gesture_rotation_update_cb), self);
|
||||
g_signal_connect_swapped(rotate, "end", G_CALLBACK(gesture_rotation_end_cb),
|
||||
self);
|
||||
|
||||
g_signal_connect(self, "realize", G_CALLBACK(realize_cb), self);
|
||||
g_signal_connect(self, "size-allocate", G_CALLBACK(configure_cb), self);
|
||||
g_signal_connect_swapped(self, "realize", G_CALLBACK(realize_cb), self);
|
||||
g_signal_connect_swapped(self, "size-allocate", G_CALLBACK(size_allocate_cb),
|
||||
self);
|
||||
}
|
||||
|
||||
static void fl_view_set_property(GObject* object,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user