Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 8c74a1e

Browse files
committed
Continue refactor and format code
1 parent f1f91ac commit 8c74a1e

File tree

9 files changed

+85
-87
lines changed

9 files changed

+85
-87
lines changed

shell/platform/linux/BUILD.gn

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,6 @@ source_set("flutter_linux_sources") {
136136
"fl_renderer_headless.cc",
137137
"fl_scrolling_manager.cc",
138138
"fl_scrolling_view_delegate.cc",
139-
"fl_touch_manager.cc",
140-
"fl_touch_view_delegate.cc",
141139
"fl_settings.cc",
142140
"fl_settings_handler.cc",
143141
"fl_settings_portal.cc",
@@ -152,6 +150,8 @@ source_set("flutter_linux_sources") {
152150
"fl_texture.cc",
153151
"fl_texture_gl.cc",
154152
"fl_texture_registrar.cc",
153+
"fl_touch_manager.cc",
154+
"fl_touch_view_delegate.cc",
155155
"fl_value.cc",
156156
"fl_view.cc",
157157
"fl_view_accessible.cc",

shell/platform/linux/fl_engine.cc

Lines changed: 41 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@
77
#include <gmodule.h>
88

99
#include <cstring>
10-
#include <string>
11-
#include <unordered_map>
12-
#include <vector>
1310

1411
#include "flutter/common/constants.h"
1512
#include "flutter/shell/platform/common/engine_switches.h"
@@ -480,7 +477,8 @@ static void fl_engine_init(FlEngine* self) {
480477

481478
self->texture_registrar = fl_texture_registrar_new(self);
482479

483-
self->pointer_states = g_hash_table_new_full(g_direct_hash, g_direct_equal, nullptr, nullptr);
480+
self->pointer_states =
481+
g_hash_table_new_full(g_direct_hash, g_direct_equal, nullptr, nullptr);
484482
}
485483

486484
FlEngine* fl_engine_new_with_renderer(FlDartProject* project,
@@ -910,7 +908,6 @@ void fl_engine_send_mouse_pointer_event(FlEngine* self,
910908
self->embedder_api.SendPointerEvent(self->engine, &fl_event, 1);
911909
}
912910

913-
914911
// Set's |event_data|'s phase to either kMove or kHover depending on the current
915912
// primary mouse button state.
916913
void SetEventPhaseFromCursorButtonState(FlEngine* self,
@@ -929,59 +926,60 @@ void SetEventPhaseFromCursorButtonState(FlEngine* self,
929926
}
930927
}
931928

932-
933-
934929
void fl_engine_send_pointer_event(FlEngine* self,
935-
FlutterViewId view_id,
936-
const FlutterPointerEvent& event_data){
930+
FlutterViewId view_id,
931+
const FlutterPointerEvent& event_data) {
937932
g_return_if_fail(FL_IS_ENGINE(self));
938933

939934
if (self->engine == nullptr) {
940935
return;
941936
}
942-
937+
943938
// Copy the event data to avoid modifying the caller's data.
944-
auto event_data_copy = event_data;
939+
FlutterPointerEvent event_data_copy = event_data;
945940

946-
// Create a virtual pointer ID that is unique across all device types
941+
// Create a virtual pointer ID that is unique across all device types
947942
// to prevent pointers from clashing in the engine's converter
948943
// (lib/ui/window/pointer_data_packet_converter.cc)
949-
int32_t pointer_id = (static_cast<int32_t>(event_data_copy.device_kind) << 28) | event_data_copy.device;
944+
int32_t pointer_id =
945+
(static_cast<int32_t>(event_data_copy.device_kind) << 28) |
946+
event_data_copy.device;
950947

951948
// Add the pointer state if it doesn't exist.
952-
auto state = g_new(PointerState, 1);
953-
state->device_kind = event_data_copy.device_kind;
954-
state->pointer_id = pointer_id;
955-
956-
bool added = g_hash_table_insert(self->pointer_states, GINT_TO_POINTER(pointer_id), state);
957-
if (!added) {
958-
g_free(state);
959-
state = static_cast<PointerState*>(g_hash_table_lookup(self->pointer_states, GINT_TO_POINTER(pointer_id)));
960-
}
961-
962-
// Modify the phase based on the cursor button state.
963-
if (event_data_copy.phase != FlutterPointerPhase::kRemove) {
964-
SetEventPhaseFromCursorButtonState(self, &event_data_copy, state);
949+
PointerState* state = static_cast<PointerState*>(
950+
g_hash_table_lookup(self->pointer_states, GINT_TO_POINTER(pointer_id)));
951+
if (state == nullptr) {
952+
state = g_new(PointerState, 1);
953+
state->device_kind = event_data_copy.device_kind;
954+
state->pointer_id = pointer_id;
955+
state->buttons = 0;
956+
state->flutter_state_is_down = false;
957+
state->flutter_state_is_added = false;
958+
g_hash_table_insert(self->pointer_states, GINT_TO_POINTER(pointer_id),
959+
state);
965960
}
966961

967-
// Modify the state based on the event.
962+
// Modify the button state based on the event's phase.
968963
if (event_data_copy.phase == FlutterPointerPhase::kDown) {
969-
state->buttons |= event_data_copy.buttons;
970-
state->flutter_state_is_down = true;
964+
state->buttons |=
965+
FlutterPointerMouseButtons::kFlutterPointerButtonMousePrimary;
971966
} else if (event_data_copy.phase == FlutterPointerPhase::kUp) {
972-
state->buttons &= ~event_data_copy.buttons;
973-
state->flutter_state_is_down = false;
967+
state->buttons &=
968+
~FlutterPointerMouseButtons::kFlutterPointerButtonMousePrimary;
969+
}
970+
971+
// Get the real phase based on the current button state.
972+
if (event_data_copy.phase != FlutterPointerPhase::kRemove &&
973+
event_data_copy.phase != FlutterPointerPhase::kAdd) {
974+
SetEventPhaseFromCursorButtonState(self, &event_data_copy, state);
974975
}
975976

976977
// If sending anything other than an add, and the pointer isn't already added,
977978
// synthesize an add to satisfy Flutter's expectations about events.
978979
if (!state->flutter_state_is_added &&
979980
event_data_copy.phase != FlutterPointerPhase::kAdd) {
980-
FlutterPointerEvent event = {};
981+
FlutterPointerEvent event = event_data_copy;
981982
event.phase = FlutterPointerPhase::kAdd;
982-
event.x = event_data_copy.x;
983-
event.y = event_data_copy.y;
984-
event.buttons = 0;
985983
fl_engine_send_pointer_event(self, view_id, event);
986984
}
987985

@@ -1007,10 +1005,15 @@ void fl_engine_send_pointer_event(FlEngine* self,
10071005

10081006
self->embedder_api.SendPointerEvent(self->engine, &event, 1);
10091007

1010-
if (event_data_copy.phase == FlutterPointerPhase::kAdd) {
1008+
if (event.phase == FlutterPointerPhase::kAdd) {
10111009
state->flutter_state_is_added = true;
1012-
} else if (event_data_copy.phase == FlutterPointerPhase::kRemove) {
1013-
g_hash_table_remove(self->pointer_states, GINT_TO_POINTER(state->pointer_id));
1010+
} else if (event.phase == FlutterPointerPhase::kDown) {
1011+
state->flutter_state_is_down = true;
1012+
} else if (event.phase == FlutterPointerPhase::kUp) {
1013+
state->flutter_state_is_down = false;
1014+
} else if (event.phase == FlutterPointerPhase::kRemove) {
1015+
g_hash_table_remove(self->pointer_states,
1016+
GINT_TO_POINTER(state->pointer_id));
10141017
}
10151018
}
10161019

shell/platform/linux/fl_engine_private.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,9 +281,17 @@ void fl_engine_send_mouse_pointer_event(FlEngine* engine,
281281
double scroll_delta_y,
282282
int64_t buttons);
283283

284+
/**
285+
* fl_engine_send_pointer_event:
286+
* @engine: an #FlEngine.
287+
* @view_id: the view that the event occured on.
288+
* @event_data: pointer event data.
289+
*
290+
* Sends a pointer event to the engine.
291+
*/
284292
void fl_engine_send_pointer_event(FlEngine* engine,
285-
FlutterViewId view_id,
286-
const FlutterPointerEvent& event_data);
293+
FlutterViewId view_id,
294+
const FlutterPointerEvent& event_data);
287295

288296
/**
289297
* fl_engine_send_pointer_pan_zoom_event:

shell/platform/linux/fl_renderer.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
G_BEGIN_DECLS
1616

17-
1817
/**
1918
* FlRendererError:
2019
* Errors for #FlRenderer objects to set on failures.

shell/platform/linux/fl_touch_manager.cc

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
static const int kMinTouchDeviceId = 0;
88
static const int kMaxTouchDeviceId = 128;
99

10-
1110
struct _FlTouchManager {
1211
GObject parent_instance;
1312

@@ -33,16 +32,16 @@ static void fl_touch_manager_class_init(FlTouchManagerClass* klass) {
3332

3433
static void fl_touch_manager_init(FlTouchManager* self) {}
3534

36-
FlTouchManager* fl_touch_manager_new(
37-
FlTouchViewDelegate* view_delegate) {
35+
FlTouchManager* fl_touch_manager_new(FlTouchViewDelegate* view_delegate) {
3836
g_return_val_if_fail(FL_IS_TOUCH_VIEW_DELEGATE(view_delegate), nullptr);
3937

40-
FlTouchManager* self = FL_TOUCH_MANAGER(
41-
g_object_new(fl_touch_manager_get_type(), nullptr));
38+
FlTouchManager* self =
39+
FL_TOUCH_MANAGER(g_object_new(fl_touch_manager_get_type(), nullptr));
4240

4341
g_weak_ref_init(&self->view_delegate, view_delegate);
4442

45-
self->touch_id_generator = new flutter::SequentialIdGenerator(kMinTouchDeviceId, kMaxTouchDeviceId);
43+
self->touch_id_generator =
44+
new flutter::SequentialIdGenerator(kMinTouchDeviceId, kMaxTouchDeviceId);
4645

4746
return self;
4847
}
@@ -64,7 +63,7 @@ void fl_touch_manager_handle_touch_event(FlTouchManager* self,
6463
uint32_t id = reinterpret_cast<long>(seq);
6564
// generate touch id from unique id
6665
auto touch_id = self->touch_id_generator->GetGeneratedId(id);
67-
66+
6867
gdouble event_x = 0.0, event_y = 0.0;
6968
gdk_event_get_coords(reinterpret_cast<GdkEvent*>(event), &event_x, &event_y);
7069

@@ -73,7 +72,7 @@ void fl_touch_manager_handle_touch_event(FlTouchManager* self,
7372

7473
GdkEventType touch_event_type =
7574
gdk_event_get_event_type(reinterpret_cast<GdkEvent*>(event));
76-
75+
7776
FlutterPointerEvent event_data = {};
7877
event_data.x = x;
7978
event_data.y = y;
@@ -83,26 +82,22 @@ void fl_touch_manager_handle_touch_event(FlTouchManager* self,
8382

8483
switch (touch_event_type) {
8584
case GDK_TOUCH_BEGIN:
86-
event_data.buttons = FlutterPointerMouseButtons::kFlutterPointerButtonMousePrimary;
8785
event_data.phase = FlutterPointerPhase::kDown;
8886
fl_touch_view_delegate_send_pointer_event(view_delegate, event_data);
8987
break;
9088
case GDK_TOUCH_UPDATE:
9189
event_data.phase = FlutterPointerPhase::kMove;
92-
fl_touch_view_delegate_send_pointer_event(view_delegate, event_data);
90+
fl_touch_view_delegate_send_pointer_event(view_delegate, event_data);
9391
break;
9492
case GDK_TOUCH_END:
9593
event_data.phase = FlutterPointerPhase::kUp;
96-
event_data.buttons = FlutterPointerMouseButtons::kFlutterPointerButtonMousePrimary;
97-
fl_touch_view_delegate_send_pointer_event(view_delegate, event_data);
98-
94+
fl_touch_view_delegate_send_pointer_event(view_delegate, event_data);
95+
9996
event_data.phase = FlutterPointerPhase::kRemove;
100-
event_data.buttons = 0;
10197
fl_touch_view_delegate_send_pointer_event(view_delegate, event_data);
10298
self->touch_id_generator->ReleaseNumber(id);
10399
break;
104100
default:
105101
break;
106102
}
107103
}
108-

shell/platform/linux/fl_touch_manager.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@ G_DECLARE_FINAL_TYPE(FlTouchManager,
2727
*
2828
* Returns: a new #FlTouchManager.
2929
*/
30-
FlTouchManager* fl_touch_manager_new(
31-
FlTouchViewDelegate* view_delegate);
30+
FlTouchManager* fl_touch_manager_new(FlTouchViewDelegate* view_delegate);
3231

3332
/**
3433
* fl_touch_manager_handle_touch_event:
@@ -40,7 +39,6 @@ void fl_touch_manager_handle_touch_event(FlTouchManager* manager,
4039
GdkEventTouch* event,
4140
gint scale_factor);
4241

43-
4442
G_END_DECLS
4543

4644
#endif // FLUTTER_SHELL_PLATFORM_LINUX_FL_TOUCH_MANAGER_H_

shell/platform/linux/fl_touch_view_delegate.cc

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44

55
#include "flutter/shell/platform/linux/fl_touch_view_delegate.h"
66

7-
G_DEFINE_INTERFACE(FlTouchViewDelegate,
8-
fl_touch_view_delegate,
9-
G_TYPE_OBJECT)
7+
G_DEFINE_INTERFACE(FlTouchViewDelegate, fl_touch_view_delegate, G_TYPE_OBJECT)
108

119
static void fl_touch_view_delegate_default_init(
1210
FlTouchViewDelegateInterface* iface) {}
@@ -18,6 +16,3 @@ void fl_touch_view_delegate_send_pointer_event(
1816

1917
FL_TOUCH_VIEW_DELEGATE_GET_IFACE(self)->send_pointer_event(self, event_data);
2018
}
21-
22-
23-

shell/platform/linux/fl_touch_view_delegate.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111

1212
#include "flutter/shell/platform/embedder/embedder.h"
1313
#include "flutter/shell/platform/linux/fl_key_event.h"
14-
#include "flutter/shell/platform/linux/public/flutter_linux/fl_binary_messenger.h"
1514
#include "flutter/shell/platform/linux/fl_renderer.h"
15+
#include "flutter/shell/platform/linux/public/flutter_linux/fl_binary_messenger.h"
1616

1717
G_BEGIN_DECLS
1818

@@ -36,14 +36,12 @@ struct _FlTouchViewDelegateInterface {
3636

3737
void (*send_pointer_event)(FlTouchViewDelegate* delegate,
3838
const FlutterPointerEvent& event_data);
39-
4039
};
4140

4241
void fl_touch_view_delegate_send_pointer_event(
4342
FlTouchViewDelegate* delegate,
4443
const FlutterPointerEvent& event_data);
4544

46-
4745
G_END_DECLS
4846

4947
#endif // FLUTTER_SHELL_PLATFORM_LINUX_FL_TOUCH_VIEW_DELEGATE_H_

0 commit comments

Comments
 (0)