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

Commit 68609d4

Browse files
committed
Use separate device id for gestures on linux
1 parent bb9fc9d commit 68609d4

File tree

4 files changed

+24
-21
lines changed

4 files changed

+24
-21
lines changed

shell/platform/linux/fl_engine.cc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@
2222
// Unique number associated with platform tasks.
2323
static constexpr size_t kPlatformTaskRunnerIdentifier = 1;
2424

25+
//
26+
static constexpr int32_t kMousePointerDeviceId = 0;
27+
static constexpr int32_t kPointerPanZoomDeviceId = 1;
28+
2529
struct _FlEngine {
2630
GObject parent_instance;
2731

@@ -708,11 +712,11 @@ void fl_engine_send_mouse_pointer_event(FlEngine* self,
708712
fl_event.scroll_delta_y = scroll_delta_y;
709713
fl_event.device_kind = kFlutterPointerDeviceKindMouse;
710714
fl_event.buttons = buttons;
715+
fl_event.device = kMousePointerDeviceId;
711716
self->embedder_api.SendPointerEvent(self->engine, &fl_event, 1);
712717
}
713718

714719
void fl_engine_send_pointer_pan_zoom_event(FlEngine* self,
715-
int64_t device,
716720
size_t timestamp,
717721
double x,
718722
double y,
@@ -737,7 +741,7 @@ void fl_engine_send_pointer_pan_zoom_event(FlEngine* self,
737741
fl_event.pan_y = pan_y;
738742
fl_event.scale = scale;
739743
fl_event.rotation = rotation;
740-
fl_event.device = device;
744+
fl_event.device = kPointerPanZoomDeviceId;
741745
fl_event.device_kind = kFlutterPointerDeviceKindTouch;
742746
self->embedder_api.SendPointerEvent(self->engine, &fl_event, 1);
743747
}

shell/platform/linux/fl_engine_private.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,6 @@ void fl_engine_send_mouse_pointer_event(FlEngine* engine,
190190
int64_t buttons);
191191

192192
void fl_engine_send_pointer_pan_zoom_event(FlEngine* self,
193-
int64_t device,
194193
size_t timestamp,
195194
double x,
196195
double y,

shell/platform/linux/fl_engine_test.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ TEST(FlEngineTest, PointerPanZoom) {
102102
g_autoptr(GError) error = nullptr;
103103
EXPECT_TRUE(fl_engine_start(engine, &error));
104104
EXPECT_EQ(error, nullptr);
105-
fl_engine_send_pointer_pan_zoom_event(engine, 0, 1234567890, 800, 600,
105+
fl_engine_send_pointer_pan_zoom_event(engine, 1234567890, 800, 600,
106106
kPanZoomUpdate, 1.5, 2.5, 3.5, 4.5);
107107

108108
EXPECT_TRUE(called);

shell/platform/linux/fl_view.cc

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -583,7 +583,7 @@ static gboolean event_box_scroll_event(GtkWidget* widget,
583583
scroll_delta_y *= -1;
584584
if (event->is_stop) {
585585
fl_engine_send_pointer_pan_zoom_event(
586-
view->engine, 123123, event->time * kMicrosecondsPerMillisecond,
586+
view->engine, event->time * kMicrosecondsPerMillisecond,
587587
event->x * scale_factor, event->y * scale_factor, kPanZoomEnd,
588588
view->pan_x, view->pan_y, 0, 0);
589589
view->pan_started = FALSE;
@@ -592,15 +592,15 @@ static gboolean event_box_scroll_event(GtkWidget* widget,
592592
view->pan_x = 0;
593593
view->pan_y = 0;
594594
fl_engine_send_pointer_pan_zoom_event(
595-
view->engine, 123123, event->time * kMicrosecondsPerMillisecond,
595+
view->engine, event->time * kMicrosecondsPerMillisecond,
596596
event->x * scale_factor, event->y * scale_factor, kPanZoomStart, 0,
597597
0, 0, 0);
598598
view->pan_started = TRUE;
599599
}
600600
view->pan_x += scroll_delta_x;
601601
view->pan_y += scroll_delta_y;
602602
fl_engine_send_pointer_pan_zoom_event(
603-
view->engine, 123123, event->time * kMicrosecondsPerMillisecond,
603+
view->engine, event->time * kMicrosecondsPerMillisecond,
604604
event->x * scale_factor, event->y * scale_factor, kPanZoomUpdate,
605605
view->pan_x, view->pan_y, 1, 0);
606606
}
@@ -697,9 +697,9 @@ static void event_box_gesture_rotation_begin(GtkGestureRotate* gesture,
697697
view->zoom_rotate_started = true;
698698
view->scale = 1;
699699
view->rotation = 0;
700-
fl_engine_send_pointer_pan_zoom_event(
701-
view->engine, 123123, g_get_real_time(), view->last_x, view->last_y,
702-
kPanZoomStart, 0, 0, 0, 0);
700+
fl_engine_send_pointer_pan_zoom_event(view->engine, g_get_real_time(),
701+
view->last_x, view->last_y,
702+
kPanZoomStart, 0, 0, 0, 0);
703703
}
704704
}
705705

@@ -709,7 +709,7 @@ static void event_box_gesture_rotation_update(GtkGestureRotate* widget,
709709
FlView* view) {
710710
view->rotation = rotation;
711711
fl_engine_send_pointer_pan_zoom_event(
712-
view->engine, 123123, g_get_real_time(), view->last_x, view->last_y,
712+
view->engine, g_get_real_time(), view->last_x, view->last_y,
713713
kPanZoomUpdate, 0, 0, view->scale, view->rotation);
714714
}
715715

@@ -718,9 +718,9 @@ static void event_box_gesture_rotation_end(GtkGestureRotate* gesture,
718718
FlView* view) {
719719
if (view->zoom_rotate_started) {
720720
view->zoom_rotate_started = false;
721-
fl_engine_send_pointer_pan_zoom_event(
722-
view->engine, 123123, g_get_real_time(), view->last_x, view->last_y,
723-
kPanZoomEnd, 0, 0, 0, 0);
721+
fl_engine_send_pointer_pan_zoom_event(view->engine, g_get_real_time(),
722+
view->last_x, view->last_y,
723+
kPanZoomEnd, 0, 0, 0, 0);
724724
}
725725
}
726726

@@ -731,9 +731,9 @@ static void event_box_gesture_zoom_begin(GtkGestureZoom* gesture,
731731
view->zoom_rotate_started = true;
732732
view->scale = 1;
733733
view->rotation = 0;
734-
fl_engine_send_pointer_pan_zoom_event(
735-
view->engine, 123123, g_get_real_time(), view->last_x, view->last_y,
736-
kPanZoomStart, 0, 0, 0, 0);
734+
fl_engine_send_pointer_pan_zoom_event(view->engine, g_get_real_time(),
735+
view->last_x, view->last_y,
736+
kPanZoomStart, 0, 0, 0, 0);
737737
}
738738
}
739739

@@ -742,7 +742,7 @@ static void event_box_gesture_zoom_update(GtkGestureZoom* widget,
742742
FlView* view) {
743743
view->scale = scale;
744744
fl_engine_send_pointer_pan_zoom_event(
745-
view->engine, 123123, g_get_real_time(), view->last_x, view->last_y,
745+
view->engine, g_get_real_time(), view->last_x, view->last_y,
746746
kPanZoomUpdate, 0, 0, view->scale, view->rotation);
747747
}
748748

@@ -751,9 +751,9 @@ static void event_box_gesture_zoom_end(GtkGestureZoom* gesture,
751751
FlView* view) {
752752
if (view->zoom_rotate_started) {
753753
view->zoom_rotate_started = false;
754-
fl_engine_send_pointer_pan_zoom_event(
755-
view->engine, 123123, g_get_real_time(), view->last_x, view->last_y,
756-
kPanZoomEnd, 0, 0, 0, 0);
754+
fl_engine_send_pointer_pan_zoom_event(view->engine, g_get_real_time(),
755+
view->last_x, view->last_y,
756+
kPanZoomEnd, 0, 0, 0, 0);
757757
}
758758
}
759759

0 commit comments

Comments
 (0)