Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
152 commits
Select commit Hold shift + click to select a range
2a7e219
infra
dkwingsmt Apr 1, 2021
5979f94
Remove unused constants
dkwingsmt Apr 1, 2021
856f2f7
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt Apr 1, 2021
e7131be
Compiled
dkwingsmt Apr 1, 2021
45ff4dc
WIP tests
dkwingsmt Apr 2, 2021
ba19f0e
Test? (untested)
dkwingsmt Apr 5, 2021
c630bf1
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt Apr 5, 2021
40b8afc
Compiled
dkwingsmt Apr 5, 2021
be64f77
First Test pass
dkwingsmt Apr 6, 2021
985b03f
Check pending. better event
dkwingsmt Apr 6, 2021
9373f2f
Format
dkwingsmt Apr 6, 2021
8597c3d
Test 2
dkwingsmt Apr 6, 2021
ba825e9
Better event storage
dkwingsmt Apr 7, 2021
53363e4
Better async test
dkwingsmt Apr 7, 2021
61df3cf
Sync test
dkwingsmt Apr 7, 2021
c544bd2
Two async
dkwingsmt Apr 7, 2021
74e5a0a
Remove manager from responder
dkwingsmt Apr 7, 2021
ac01623
FlKeyChannelResponderTest, SendKeyEvent (but other error)
dkwingsmt Apr 7, 2021
b2a63fb
Fix other tests
dkwingsmt Apr 7, 2021
da43198
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt Apr 8, 2021
421b324
WIP embedder
dkwingsmt Apr 8, 2021
600bd63
Test wip
dkwingsmt Apr 9, 2021
1e3e22f
Compilable
dkwingsmt Apr 10, 2021
6cc9b08
Compile test
dkwingsmt Apr 10, 2021
a5bef69
Rename
dkwingsmt Apr 12, 2021
4cff9ae
Barely running
dkwingsmt Apr 12, 2021
68db89d
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt Apr 12, 2021
7c0c2ca
Down event
dkwingsmt Apr 12, 2021
537dcf6
Up event
dkwingsmt Apr 12, 2021
04644bd
Update key mapping
dkwingsmt Apr 13, 2021
dcc12ca
Shift and letter keys
dkwingsmt Apr 13, 2021
ccbecac
Test for numpad key
dkwingsmt Apr 13, 2021
7cbb69c
Add embedder responder to manager
dkwingsmt Apr 14, 2021
5dac161
synthesize pressing state
dkwingsmt Apr 14, 2021
321d077
Add test for duplicate events
dkwingsmt Apr 14, 2021
21e9a98
Sync state test 1
dkwingsmt Apr 14, 2021
886d43b
Syn lock mode
dkwingsmt Apr 15, 2021
a984ccc
Sync lock mode test
dkwingsmt Apr 15, 2021
3830b84
State sync
dkwingsmt Apr 15, 2021
cf97260
Complete channel tests
dkwingsmt Apr 15, 2021
a383f19
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt Apr 15, 2021
72022c5
Remove some prints
dkwingsmt Apr 16, 2021
22616c8
Add one print back
dkwingsmt Apr 16, 2021
559724a
Fix capslock
dkwingsmt Apr 17, 2021
8178290
Fix warnings
dkwingsmt Apr 19, 2021
1305f60
Hide some comments
dkwingsmt Apr 19, 2021
a176548
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt Apr 19, 2021
db89b3b
format
dkwingsmt Apr 22, 2021
8bcafa4
KeyboardManager doc
dkwingsmt Apr 24, 2021
c7a08fa
Docs
dkwingsmt Apr 25, 2021
822cb12
Refactor Checked Key
dkwingsmt Apr 26, 2021
6c40d27
Merge remote-tracking branch 'origin/keyboard-linux' into keyboard-linux
dkwingsmt Apr 26, 2021
c66f16b
ATP
dkwingsmt Apr 26, 2021
5926321
format
dkwingsmt Apr 26, 2021
2ad57dd
Docs
dkwingsmt Apr 26, 2021
31370ee
Doc
dkwingsmt Apr 26, 2021
a412a5a
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt Apr 26, 2021
f34c546
Add inference
dkwingsmt Apr 27, 2021
0123901
Remove prints
dkwingsmt Apr 27, 2021
8797e50
Doc for infer
dkwingsmt Apr 27, 2021
4ea2cb3
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt Apr 27, 2021
b936ce3
Lincenses
dkwingsmt Apr 27, 2021
c3a947b
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt May 4, 2021
c29307a
MOD mask
dkwingsmt May 4, 2021
00d010d
license
dkwingsmt May 4, 2021
177c63f
Fix build
dkwingsmt May 4, 2021
9f1860d
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt May 6, 2021
4f1b567
Merge branch 'keyboard-linux' of https://github.com/dkwingsmt/engine …
dkwingsmt May 6, 2021
ba29bd8
Review
dkwingsmt May 6, 2021
5bbab53
Use logical
dkwingsmt May 6, 2021
c4f4297
ATP
dkwingsmt May 6, 2021
ef812c4
Merge branch 'keyboard-linux' of https://github.com/dkwingsmt/engine …
dkwingsmt May 6, 2021
764cb71
Remapp synth
dkwingsmt May 7, 2021
d045347
Compile
dkwingsmt May 7, 2021
6ecfeb8
ATP except for new test
dkwingsmt May 7, 2021
2f62618
New test 1 passed
dkwingsmt May 7, 2021
da312f2
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt May 10, 2021
942e6e6
ATP
dkwingsmt May 10, 2021
ceedf5a
SynthesizationOccursOnSkippedEvents
dkwingsmt May 10, 2021
a63ad57
Remove printf
dkwingsmt May 10, 2021
44de3b8
Remove commented
dkwingsmt May 10, 2021
86046d8
More test
dkwingsmt May 10, 2021
ff59063
Revert windows key map
dkwingsmt May 11, 2021
1bf7b29
g_ptr_array_find_with_equal_func1
dkwingsmt May 11, 2021
858c980
Fix format
dkwingsmt May 11, 2021
64a589a
format
dkwingsmt May 11, 2021
12c8912
FlKeyEvent
dkwingsmt May 11, 2021
8673888
Migrate (untested)
dkwingsmt May 13, 2021
740b91d
Compilable
dkwingsmt May 13, 2021
6aa9368
ATP
dkwingsmt May 14, 2021
fafadbb
Better format
dkwingsmt May 14, 2021
bf9713a
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt May 14, 2021
321e9f0
Update licenses_flutter
dkwingsmt May 14, 2021
41481dc
test text input plugin
dkwingsmt May 14, 2021
7511427
Format
dkwingsmt May 14, 2021
2db83c2
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt May 14, 2021
3ecc134
Fix test
dkwingsmt May 14, 2021
76a166a
Apply suggestions from code review
dkwingsmt May 15, 2021
bdb678a
Review
dkwingsmt May 15, 2021
c8140c5
Format
dkwingsmt May 15, 2021
8ce3c69
Use std::map for two maps
dkwingsmt May 15, 2021
076f053
Merge branch 'keyboard-linux' of https://github.com/dkwingsmt/engine …
dkwingsmt May 15, 2021
20d6e56
ATP
dkwingsmt May 15, 2021
2ab1778
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt May 17, 2021
45eb237
Fix event
dkwingsmt May 17, 2021
631a979
ATP
dkwingsmt May 17, 2021
7da46cd
Format
dkwingsmt May 17, 2021
9ffccfd
Dont release textinput
dkwingsmt May 17, 2021
34de759
Remove duplicate clone
dkwingsmt May 17, 2021
2465509
Merge branch 'keyboard-linux' of https://github.com/dkwingsmt/engine …
dkwingsmt May 17, 2021
af817fb
Clear more pointers
dkwingsmt May 17, 2021
ea88538
Stricter check
dkwingsmt May 17, 2021
c08326b
Revert to global event
dkwingsmt May 17, 2021
363aa63
Fix tests
dkwingsmt May 17, 2021
ad4bd9f
Trace everywhere
dkwingsmt May 17, 2021
c18185e
Check engine nullptr
dkwingsmt May 18, 2021
6b64fd2
Remove tracing
dkwingsmt May 18, 2021
434b4b6
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt May 18, 2021
e8ac1e5
Format
dkwingsmt May 18, 2021
a2c01a1
Format
dkwingsmt May 18, 2021
0b77457
Merge remote-tracking branch 'origin/keyboard-linux' into keyboard-linux
dkwingsmt May 18, 2021
e7c1d4b
Turn on tests
dkwingsmt May 18, 2021
9a0c84d
Complete test
dkwingsmt May 18, 2021
ba1b664
Correct line
dkwingsmt May 18, 2021
b4cdcc3
Fix build
dkwingsmt May 18, 2021
dd5059b
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt May 18, 2021
f5466fa
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt May 18, 2021
bcc11b6
Turn off 2 files
dkwingsmt May 18, 2021
385c435
Turn off another file
dkwingsmt May 18, 2021
0f9a4cf
Change order
dkwingsmt May 18, 2021
60a7525
Turn on embedder responder test
dkwingsmt May 18, 2021
fafc671
Check call records
dkwingsmt May 18, 2021
dc907a1
Merge branch 'keyboard-linux' of https://github.com/dkwingsmt/engine …
dkwingsmt May 18, 2021
6f4bee5
Trace events sending
dkwingsmt May 18, 2021
12427c7
Remove FlKeyEmbedderUserData::responder
dkwingsmt May 18, 2021
5616eb3
New test
dkwingsmt May 18, 2021
a1978b5
printf("After create responder\n");
dkwingsmt May 18, 2021
6281440
Trace mock engine
dkwingsmt May 19, 2021
c98da47
More engine testing
dkwingsmt May 19, 2021
c1a0433
Add signal disconnection
dkwingsmt May 19, 2021
e3a4fe6
Format
dkwingsmt May 19, 2021
b807dbe
More log
dkwingsmt May 19, 2021
62dbc93
More print
dkwingsmt May 19, 2021
9bb9e7b
Prints update_settings
dkwingsmt May 19, 2021
6bf9fde
Remove logs
dkwingsmt May 19, 2021
a8b69d4
Adjust order
dkwingsmt May 19, 2021
89a271e
Format
dkwingsmt May 19, 2021
423fb24
Add TODO to explain
dkwingsmt May 19, 2021
e967132
Merge branch 'keyboard-linux' of https://github.com/dkwingsmt/engine …
dkwingsmt May 19, 2021
f36473a
Better doc
dkwingsmt May 19, 2021
eb18576
Update mock_text_input_plugin.cc
dkwingsmt May 25, 2021
4b81648
Merge remote-tracking branch 'upstream/master' into keyboard-linux
dkwingsmt May 26, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 16 additions & 4 deletions ci/licenses_golden/licenses_flutter
Original file line number Diff line number Diff line change
Expand Up @@ -1465,10 +1465,20 @@ FILE: ../../../flutter/shell/platform/linux/fl_json_message_codec.cc
FILE: ../../../flutter/shell/platform/linux/fl_json_message_codec_test.cc
FILE: ../../../flutter/shell/platform/linux/fl_json_method_codec.cc
FILE: ../../../flutter/shell/platform/linux/fl_json_method_codec_test.cc
FILE: ../../../flutter/shell/platform/linux/fl_key_event_plugin.cc
FILE: ../../../flutter/shell/platform/linux/fl_key_event_plugin.h
FILE: ../../../flutter/shell/platform/linux/fl_key_event_plugin_private.h
FILE: ../../../flutter/shell/platform/linux/fl_key_event_plugin_test.cc
FILE: ../../../flutter/shell/platform/linux/fl_key_channel_responder.cc
FILE: ../../../flutter/shell/platform/linux/fl_key_channel_responder.h
FILE: ../../../flutter/shell/platform/linux/fl_key_channel_responder_test.cc
FILE: ../../../flutter/shell/platform/linux/fl_key_embedder_responder.cc
FILE: ../../../flutter/shell/platform/linux/fl_key_embedder_responder.h
FILE: ../../../flutter/shell/platform/linux/fl_key_embedder_responder_private.h
FILE: ../../../flutter/shell/platform/linux/fl_key_embedder_responder_test.cc
FILE: ../../../flutter/shell/platform/linux/fl_key_event.cc
FILE: ../../../flutter/shell/platform/linux/fl_key_event.h
FILE: ../../../flutter/shell/platform/linux/fl_key_responder.cc
FILE: ../../../flutter/shell/platform/linux/fl_key_responder.h
FILE: ../../../flutter/shell/platform/linux/fl_keyboard_manager.cc
FILE: ../../../flutter/shell/platform/linux/fl_keyboard_manager.h
FILE: ../../../flutter/shell/platform/linux/fl_keyboard_manager_test.cc
FILE: ../../../flutter/shell/platform/linux/fl_message_codec.cc
FILE: ../../../flutter/shell/platform/linux/fl_message_codec_test.cc
FILE: ../../../flutter/shell/platform/linux/fl_method_call.cc
Expand Down Expand Up @@ -1513,6 +1523,8 @@ FILE: ../../../flutter/shell/platform/linux/fl_view.cc
FILE: ../../../flutter/shell/platform/linux/fl_view_accessible.cc
FILE: ../../../flutter/shell/platform/linux/fl_view_accessible.h
FILE: ../../../flutter/shell/platform/linux/fl_view_private.h
FILE: ../../../flutter/shell/platform/linux/key_mapping.cc
FILE: ../../../flutter/shell/platform/linux/key_mapping.h
FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_basic_message_channel.h
FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_binary_codec.h
FILE: ../../../flutter/shell/platform/linux/public/flutter_linux/fl_binary_messenger.h
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* A primary responder of |FlutterKeyboardManager| that handles events by
* sending the raw information through the method channel.
*
* This class corresponds to the RawKeyboard API in the framework.
* This class communicates with the RawKeyboard API in the framework.
*/
@interface FlutterChannelKeyResponder : NSObject <FlutterKeyPrimaryResponder>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ typedef void (^FlutterSendEmbedderKeyEvent)(const FlutterKeyEvent& /* event */,
* A primary responder of |FlutterKeyboardManager| that handles events by
* sending the converted events through the embedder API.
*
* This class corresponds to the HardwareKeyboard API in the framework.
* This class communicates with the HardwareKeyboard API in the framework.
*/
@interface FlutterEmbedderKeyResponder : NSObject <FlutterKeyPrimaryResponder>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
* secondary responders.
*
* An event that is received by |handleEvent| is first dispatched to *all*
* primary resopnders. Each primary responder responds *ascynchronously* with a
* primary responders. Each primary responder responds *ascynchronously* with a
* boolean, indicating whether it handles the event.
*
* An event that is not handled by any primary responders is then passed to to
Expand All @@ -35,7 +35,7 @@
* because in reality this class will only support 2 hardcoded ones (channel
* and embedder), where the only purpose of supporting two is to support the
* legacy API (channel) during the deprecation window, after which the channel
* resopnder should be removed.
* responder should be removed.
*/
@interface FlutterKeyboardManager : NSObject

Expand All @@ -50,7 +50,7 @@
- (nonnull instancetype)initWithOwner:(nonnull NSResponder*)weakOwner;

/**
* Add a primary resopnder, which asynchronously decides whether to handle an
* Add a primary responder, which asynchronously decides whether to handle an
* event.
*/
- (void)addPrimaryResponder:(nonnull id<FlutterKeyPrimaryResponder>)responder;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
// to run multiple times (e.g., using gtest_repeat).
//
// |proc| should be the name of an entry in FlutterEngineProcTable, such as
// "initialize". |mock_impl| should be a lamba that replaces its implementation,
// "Initialize". |mock_impl| should be a lamba that replaces its implementation,
// taking the same arguments and returning the same type.
#define MOCK_ENGINE_PROC(proc, mock_impl) \
([&]() { \
Expand Down
19 changes: 16 additions & 3 deletions shell/platform/linux/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,18 @@ source_set("flutter_linux_sources") {
"fl_binary_messenger_private.h",
"fl_dart_project_private.h",
"fl_engine_private.h",
"fl_key_event_plugin_private.h",
"fl_keyboard_manager.h",
"fl_key_event.h",
"fl_key_responder.h",
"fl_key_channel_responder.h",
"fl_key_embedder_responder.h",
"fl_key_embedder_responder_private.h",
"fl_method_call_private.h",
"fl_method_channel_private.h",
"fl_method_codec_private.h",
"fl_plugin_registrar_private.h",
"fl_standard_message_codec_private.h",
"key_mapping.h",
]

configs += [ "//flutter/shell/platform/linux/config:gtk" ]
Expand All @@ -97,7 +103,11 @@ source_set("flutter_linux_sources") {
"fl_gl_area.cc",
"fl_json_message_codec.cc",
"fl_json_method_codec.cc",
"fl_key_event_plugin.cc",
"fl_key_channel_responder.cc",
"fl_key_embedder_responder.cc",
"fl_key_event.cc",
"fl_key_responder.cc",
"fl_keyboard_manager.cc",
"fl_message_codec.cc",
"fl_method_call.cc",
"fl_method_channel.cc",
Expand All @@ -120,6 +130,7 @@ source_set("flutter_linux_sources") {
"fl_value.cc",
"fl_view.cc",
"fl_view_accessible.cc",
"key_mapping.cc",
]

# Set flag to stop headers being directly included (library users should not do this)
Expand Down Expand Up @@ -166,7 +177,9 @@ executable("flutter_linux_unittests") {
"fl_event_channel_test.cc",
"fl_json_message_codec_test.cc",
"fl_json_method_codec_test.cc",
"fl_key_event_plugin_test.cc",
"fl_key_channel_responder_test.cc",
"fl_key_embedder_responder_test.cc",
"fl_keyboard_manager_test.cc",
"fl_message_codec_test.cc",
"fl_method_channel_test.cc",
"fl_method_codec_test.cc",
Expand Down
13 changes: 13 additions & 0 deletions shell/platform/linux/fl_engine.cc
Original file line number Diff line number Diff line change
Expand Up @@ -639,6 +639,19 @@ void fl_engine_send_mouse_pointer_event(FlEngine* self,
self->embedder_api.SendPointerEvent(self->engine, &fl_event, 1);
}

void fl_engine_send_key_event(FlEngine* self,
const FlutterKeyEvent* event,
FlutterKeyEventCallback callback,
void* user_data) {
g_return_if_fail(FL_IS_ENGINE(self));

if (self->engine == nullptr) {
return;
}

self->embedder_api.SendKeyEvent(self->engine, event, callback, user_data);
}

void fl_engine_dispatch_semantics_action(FlEngine* self,
uint64_t id,
FlutterSemanticsAction action,
Expand Down
8 changes: 8 additions & 0 deletions shell/platform/linux/fl_engine_private.h
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,14 @@ void fl_engine_send_mouse_pointer_event(FlEngine* engine,
double scroll_delta_y,
int64_t buttons);

/**
* fl_engine_send_key_event:
*/
void fl_engine_send_key_event(FlEngine* engine,
const FlutterKeyEvent* event,
FlutterKeyEventCallback callback,
void* user_data);

/**
* fl_engine_dispatch_semantics_action:
* @engine: an #FlEngine.
Expand Down
Loading