From 740e564c82811c8634c6a5094142676bc04a95ac Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Mon, 26 Feb 2024 14:43:17 +1300 Subject: [PATCH 1/7] Re-order functions to avoid prototype --- shell/platform/linux/fl_scrolling_manager.cc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/shell/platform/linux/fl_scrolling_manager.cc b/shell/platform/linux/fl_scrolling_manager.cc index f819c6052a3f1..c00c0909da3c7 100644 --- a/shell/platform/linux/fl_scrolling_manager.cc +++ b/shell/platform/linux/fl_scrolling_manager.cc @@ -26,7 +26,9 @@ struct _FlScrollingManager { G_DEFINE_TYPE(FlScrollingManager, fl_scrolling_manager, G_TYPE_OBJECT); -static void fl_scrolling_manager_dispose(GObject* object); +static void fl_scrolling_manager_dispose(GObject* object) { + G_OBJECT_CLASS(fl_scrolling_manager_parent_class)->dispose(object); +} static void fl_scrolling_manager_class_init(FlScrollingManagerClass* klass) { G_OBJECT_CLASS(klass)->dispose = fl_scrolling_manager_dispose; @@ -34,10 +36,6 @@ static void fl_scrolling_manager_class_init(FlScrollingManagerClass* klass) { static void fl_scrolling_manager_init(FlScrollingManager* self) {} -static void fl_scrolling_manager_dispose(GObject* object) { - G_OBJECT_CLASS(fl_scrolling_manager_parent_class)->dispose(object); -} - FlScrollingManager* fl_scrolling_manager_new( FlScrollingViewDelegate* view_delegate) { g_return_val_if_fail(FL_IS_SCROLLING_VIEW_DELEGATE(view_delegate), nullptr); From 73c70bb9994997e3098ac9f0bde690dc966b9101 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Mon, 26 Feb 2024 14:43:45 +1300 Subject: [PATCH 2/7] Fix inconsistent whitespace --- shell/platform/linux/fl_scrolling_manager.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/shell/platform/linux/fl_scrolling_manager.cc b/shell/platform/linux/fl_scrolling_manager.cc index c00c0909da3c7..5676da0a8dbd2 100644 --- a/shell/platform/linux/fl_scrolling_manager.cc +++ b/shell/platform/linux/fl_scrolling_manager.cc @@ -154,6 +154,7 @@ void fl_scrolling_manager_handle_rotation_update(FlScrollingManager* self, self->view_delegate, g_get_real_time(), self->last_x, self->last_y, kPanZoomUpdate, 0, 0, self->scale, self->rotation); } + void fl_scrolling_manager_handle_rotation_end(FlScrollingManager* self) { self->rotate_started = false; if (!self->zoom_started) { @@ -173,6 +174,7 @@ void fl_scrolling_manager_handle_zoom_begin(FlScrollingManager* self) { kPanZoomStart, 0, 0, 0, 0); } } + void fl_scrolling_manager_handle_zoom_update(FlScrollingManager* self, gdouble scale) { self->scale = scale; @@ -180,6 +182,7 @@ void fl_scrolling_manager_handle_zoom_update(FlScrollingManager* self, self->view_delegate, g_get_real_time(), self->last_x, self->last_y, kPanZoomUpdate, 0, 0, self->scale, self->rotation); } + void fl_scrolling_manager_handle_zoom_end(FlScrollingManager* self) { self->zoom_started = false; if (!self->rotate_started) { From 91d27d4458a6f3dc04f9ddaf58de536c78dcecd7 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Mon, 26 Feb 2024 14:44:28 +1300 Subject: [PATCH 3/7] Use consistent naming for docstrings --- shell/platform/linux/fl_scrolling_manager.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/shell/platform/linux/fl_scrolling_manager.h b/shell/platform/linux/fl_scrolling_manager.h index 95208237df5ee..be9d320d8e1a4 100644 --- a/shell/platform/linux/fl_scrolling_manager.h +++ b/shell/platform/linux/fl_scrolling_manager.h @@ -33,7 +33,7 @@ FlScrollingManager* fl_scrolling_manager_new( /** * fl_scrolling_manager_set_last_mouse_position: - * @manager: the #FlScrollingManager self. + * @manager: an #FlScrollingManager. * @x: the mouse x-position, in window coordinates. * @y: the mouse y-position, in window coordinates. * @@ -46,7 +46,7 @@ void fl_scrolling_manager_set_last_mouse_position(FlScrollingManager* manager, /** * fl_scrolling_manager_handle_scroll_event: - * @manager: the #FlScrollingManager self. + * @manager: an #FlScrollingManager. * @event: the scroll event. * @scale_factor: the GTK scaling factor of the window. * @@ -58,7 +58,7 @@ void fl_scrolling_manager_handle_scroll_event(FlScrollingManager* manager, /** * fl_scrolling_manager_handle_rotation_begin: - * @manager: the #FlScrollingManager self. + * @manager: an #FlScrollingManager. * * Inform the scrolling manager that a rotation gesture has begun. */ @@ -66,7 +66,7 @@ void fl_scrolling_manager_handle_rotation_begin(FlScrollingManager* manager); /** * fl_scrolling_manager_handle_rotation_update: - * @manager: the #FlScrollingManager self. + * @manager: an #FlScrollingManager. * @rotation: the rotation angle, in radians. * * Inform the scrolling manager that a rotation gesture has updated. @@ -76,7 +76,7 @@ void fl_scrolling_manager_handle_rotation_update(FlScrollingManager* manager, /** * fl_scrolling_manager_handle_rotation_end: - * @manager: the #FlScrollingManager self. + * @manager: an #FlScrollingManager. * * Inform the scrolling manager that a rotation gesture has ended. */ @@ -84,7 +84,7 @@ void fl_scrolling_manager_handle_rotation_end(FlScrollingManager* manager); /** * fl_scrolling_manager_handle_zoom_begin: - * @manager: the #FlScrollingManager self. + * @manager: an #FlScrollingManager. * * Inform the scrolling manager that a zoom gesture has begun. */ @@ -92,7 +92,7 @@ void fl_scrolling_manager_handle_zoom_begin(FlScrollingManager* manager); /** * fl_scrolling_manager_handle_zoom_update: - * @manager: the #FlScrollingManager self. + * @manager: an #FlScrollingManager. * @scale: the zoom scale. * * Inform the scrolling manager that a zoom gesture has updated. @@ -102,7 +102,7 @@ void fl_scrolling_manager_handle_zoom_update(FlScrollingManager* manager, /** * fl_scrolling_manager_handle_zoom_end: - * @manager: the #FlScrollingManager self. + * @manager: an #FlScrollingManager. * * Inform the scrolling manager that a zoom gesture has ended. */ From ad19a837b62f5c7ea1a1524590dca2a2f1328108 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Mon, 26 Feb 2024 14:45:38 +1300 Subject: [PATCH 4/7] Add function checks --- shell/platform/linux/fl_scrolling_manager.cc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/shell/platform/linux/fl_scrolling_manager.cc b/shell/platform/linux/fl_scrolling_manager.cc index 5676da0a8dbd2..66ae907d76a19 100644 --- a/shell/platform/linux/fl_scrolling_manager.cc +++ b/shell/platform/linux/fl_scrolling_manager.cc @@ -58,6 +58,7 @@ FlScrollingManager* fl_scrolling_manager_new( void fl_scrolling_manager_set_last_mouse_position(FlScrollingManager* self, gdouble x, gdouble y) { + g_return_if_fail(FL_IS_SCROLLING_MANAGER(self)); self->last_x = x; self->last_y = y; } @@ -65,6 +66,8 @@ void fl_scrolling_manager_set_last_mouse_position(FlScrollingManager* self, void fl_scrolling_manager_handle_scroll_event(FlScrollingManager* self, GdkEventScroll* scroll_event, gint scale_factor) { + g_return_if_fail(FL_IS_SCROLLING_MANAGER(self)); + GdkEvent* event = reinterpret_cast(scroll_event); guint event_time = gdk_event_get_time(event); @@ -137,6 +140,8 @@ void fl_scrolling_manager_handle_scroll_event(FlScrollingManager* self, } void fl_scrolling_manager_handle_rotation_begin(FlScrollingManager* self) { + g_return_if_fail(FL_IS_SCROLLING_MANAGER(self)); + self->rotate_started = true; if (!self->zoom_started) { self->scale = 1; @@ -149,6 +154,8 @@ void fl_scrolling_manager_handle_rotation_begin(FlScrollingManager* self) { void fl_scrolling_manager_handle_rotation_update(FlScrollingManager* self, gdouble rotation) { + g_return_if_fail(FL_IS_SCROLLING_MANAGER(self)); + self->rotation = rotation; fl_scrolling_view_delegate_send_pointer_pan_zoom_event( self->view_delegate, g_get_real_time(), self->last_x, self->last_y, @@ -156,6 +163,8 @@ void fl_scrolling_manager_handle_rotation_update(FlScrollingManager* self, } void fl_scrolling_manager_handle_rotation_end(FlScrollingManager* self) { + g_return_if_fail(FL_IS_SCROLLING_MANAGER(self)); + self->rotate_started = false; if (!self->zoom_started) { fl_scrolling_view_delegate_send_pointer_pan_zoom_event( @@ -165,6 +174,8 @@ void fl_scrolling_manager_handle_rotation_end(FlScrollingManager* self) { } void fl_scrolling_manager_handle_zoom_begin(FlScrollingManager* self) { + g_return_if_fail(FL_IS_SCROLLING_MANAGER(self)); + self->zoom_started = true; if (!self->rotate_started) { self->scale = 1; @@ -177,6 +188,8 @@ void fl_scrolling_manager_handle_zoom_begin(FlScrollingManager* self) { void fl_scrolling_manager_handle_zoom_update(FlScrollingManager* self, gdouble scale) { + g_return_if_fail(FL_IS_SCROLLING_MANAGER(self)); + self->scale = scale; fl_scrolling_view_delegate_send_pointer_pan_zoom_event( self->view_delegate, g_get_real_time(), self->last_x, self->last_y, @@ -184,6 +197,8 @@ void fl_scrolling_manager_handle_zoom_update(FlScrollingManager* self, } void fl_scrolling_manager_handle_zoom_end(FlScrollingManager* self) { + g_return_if_fail(FL_IS_SCROLLING_MANAGER(self)); + self->zoom_started = false; if (!self->rotate_started) { fl_scrolling_view_delegate_send_pointer_pan_zoom_event( From cc9463642ac81c5059f18b5dcff4ffe089f1c728 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Mon, 26 Feb 2024 15:14:29 +1300 Subject: [PATCH 5/7] Add missing weak unref --- shell/platform/linux/fl_scrolling_manager.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/shell/platform/linux/fl_scrolling_manager.cc b/shell/platform/linux/fl_scrolling_manager.cc index 66ae907d76a19..554bdd745a280 100644 --- a/shell/platform/linux/fl_scrolling_manager.cc +++ b/shell/platform/linux/fl_scrolling_manager.cc @@ -27,6 +27,14 @@ struct _FlScrollingManager { G_DEFINE_TYPE(FlScrollingManager, fl_scrolling_manager, G_TYPE_OBJECT); static void fl_scrolling_manager_dispose(GObject* object) { + FlScrollingManager* self = FL_SCROLLING_MANAGER(object); + + if (self->view_delegate != nullptr) { + g_object_remove_weak_pointer( + object, reinterpret_cast(&self->view_delegate)); + self->view_delegate = nullptr; + } + G_OBJECT_CLASS(fl_scrolling_manager_parent_class)->dispose(object); } From 37fd4ef13a0093a4d20d4c89326effe0056ceba6 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Mon, 26 Feb 2024 15:15:25 +1300 Subject: [PATCH 6/7] Remove unused include --- shell/platform/linux/fl_scrolling_manager.h | 1 - 1 file changed, 1 deletion(-) diff --git a/shell/platform/linux/fl_scrolling_manager.h b/shell/platform/linux/fl_scrolling_manager.h index be9d320d8e1a4..5c011876abbfe 100644 --- a/shell/platform/linux/fl_scrolling_manager.h +++ b/shell/platform/linux/fl_scrolling_manager.h @@ -6,7 +6,6 @@ #define FLUTTER_SHELL_PLATFORM_LINUX_FL_SCROLLING_MANAGER_H_ #include -#include #include "flutter/shell/platform/linux/fl_scrolling_view_delegate.h" From 5a56004395d9650a23d29f613097b9f2d045237e Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Mon, 26 Feb 2024 15:16:21 +1300 Subject: [PATCH 7/7] Use consistent TRUE/FALSE values --- shell/platform/linux/fl_scrolling_manager.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/shell/platform/linux/fl_scrolling_manager.cc b/shell/platform/linux/fl_scrolling_manager.cc index 554bdd745a280..aee1b52aed724 100644 --- a/shell/platform/linux/fl_scrolling_manager.cc +++ b/shell/platform/linux/fl_scrolling_manager.cc @@ -56,9 +56,9 @@ FlScrollingManager* fl_scrolling_manager_new( G_OBJECT(view_delegate), reinterpret_cast(&(self->view_delegate))); - self->pan_started = false; - self->zoom_started = false; - self->rotate_started = false; + self->pan_started = FALSE; + self->zoom_started = FALSE; + self->rotate_started = FALSE; return self; } @@ -150,7 +150,7 @@ void fl_scrolling_manager_handle_scroll_event(FlScrollingManager* self, void fl_scrolling_manager_handle_rotation_begin(FlScrollingManager* self) { g_return_if_fail(FL_IS_SCROLLING_MANAGER(self)); - self->rotate_started = true; + self->rotate_started = TRUE; if (!self->zoom_started) { self->scale = 1; self->rotation = 0; @@ -173,7 +173,7 @@ void fl_scrolling_manager_handle_rotation_update(FlScrollingManager* self, void fl_scrolling_manager_handle_rotation_end(FlScrollingManager* self) { g_return_if_fail(FL_IS_SCROLLING_MANAGER(self)); - self->rotate_started = false; + self->rotate_started = FALSE; if (!self->zoom_started) { fl_scrolling_view_delegate_send_pointer_pan_zoom_event( self->view_delegate, g_get_real_time(), self->last_x, self->last_y, @@ -184,7 +184,7 @@ void fl_scrolling_manager_handle_rotation_end(FlScrollingManager* self) { void fl_scrolling_manager_handle_zoom_begin(FlScrollingManager* self) { g_return_if_fail(FL_IS_SCROLLING_MANAGER(self)); - self->zoom_started = true; + self->zoom_started = TRUE; if (!self->rotate_started) { self->scale = 1; self->rotation = 0; @@ -207,7 +207,7 @@ void fl_scrolling_manager_handle_zoom_update(FlScrollingManager* self, void fl_scrolling_manager_handle_zoom_end(FlScrollingManager* self) { g_return_if_fail(FL_IS_SCROLLING_MANAGER(self)); - self->zoom_started = false; + self->zoom_started = FALSE; if (!self->rotate_started) { fl_scrolling_view_delegate_send_pointer_pan_zoom_event( self->view_delegate, g_get_real_time(), self->last_x, self->last_y,