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

Commit b61b777

Browse files
committed
Update Windows linker settings to be compatible with AppContainer when target==winuwp
1 parent b049556 commit b61b777

File tree

6 files changed

+20
-1
lines changed

6 files changed

+20
-1
lines changed

shell/platform/embedder/BUILD.gn

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,8 @@ if (enable_unittests) {
246246

247247
defines = [ "FLUTTER_ENGINE_NO_PROTOTYPES" ]
248248

249+
libs = [ "psapi.lib" ]
250+
249251
deps = [
250252
":embedder",
251253
":embedder_gpu_configuration",

shell/platform/windows/BUILD.gn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ executable("flutter_windows_unittests") {
171171
testonly = true
172172

173173
if (target_os == "winuwp") {
174-
libs = [ "windowsapp.lib" ]
174+
libs = [ "windowsapp.lib", "user32.lib" ]
175175
}
176176

177177
# Common Windows test sources.

shell/platform/windows/key_event_handler.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,9 @@ KeyEventHandler::KeyEventHandler(flutter::BinaryMessenger* messenger,
122122
kChannelName,
123123
&flutter::JsonMessageCodec::GetInstance())),
124124
send_input_(send_input) {
125+
#ifndef WINUWP
125126
assert(send_input != nullptr);
127+
#endif
126128
}
127129

128130
KeyEventHandler::~KeyEventHandler() = default;
@@ -190,6 +192,7 @@ void KeyEventHandler::HandleResponse(bool handled,
190192
std::cerr << "Unable to find event " << id << " in pending events queue.";
191193
return;
192194
}
195+
#ifndef WINUWP
193196
INPUT input_event;
194197
input_event.type = INPUT_KEYBOARD;
195198
input_event.ki = *key_event;
@@ -199,6 +202,7 @@ void KeyEventHandler::HandleResponse(bool handled,
199202
"with scancode "
200203
<< scancode << " (character " << character << ")" << std::endl;
201204
}
205+
#endif
202206
}
203207
}
204208

@@ -225,6 +229,10 @@ bool KeyEventHandler::KeyboardHook(FlutterWindowsView* view,
225229
event.AddMember(kKeyMapKey, kWindowsKeyMap, allocator);
226230
#ifndef WINUWP
227231
event.AddMember(kModifiersKey, GetModsForKeyState(), allocator);
232+
#else
233+
// TODO: Implement modifiers in UWP codepath
234+
// TODO: https://github.com/flutter/flutter/issues/70202
235+
event.AddMember(kModifiersKey, 0, allocator);
228236
#endif
229237

230238
switch (action) {

shell/platform/windows/key_event_handler.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,13 @@ class KeyEventHandler : public KeyboardHookHandler {
2727
using SendInputDelegate =
2828
std::function<UINT(UINT cInputs, LPINPUT pInputs, int cbSize)>;
2929

30+
#ifdef WINUWP
31+
explicit KeyEventHandler(flutter::BinaryMessenger* messenger,
32+
SendInputDelegate delegate = nullptr);
33+
#else
3034
explicit KeyEventHandler(flutter::BinaryMessenger* messenger,
3135
SendInputDelegate delegate = SendInput);
36+
#endif
3237

3338
virtual ~KeyEventHandler();
3439

shell/testing/BUILD.gn

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ executable("testing") {
1414

1515
sources = [ "tester_main.cc" ]
1616

17+
libs = [ "psapi.lib", "user32.lib", "FontSub.lib", "shlwapi.lib"]
18+
1719
deps = [
1820
"//flutter/assets",
1921
"//flutter/common",

tools/gn

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ def to_gn_args(args):
105105
gn_args['skia_use_fontconfig'] = args.enable_fontconfig
106106
gn_args['flutter_use_fontconfig'] = args.enable_fontconfig
107107
gn_args['flutter_enable_skshaper'] = args.enable_skshaper
108+
if args.target_os == 'winuwp':
109+
gn_args['skia_enable_winuwp'] = True
108110
if args.enable_skshaper:
109111
gn_args['skia_use_icu'] = True
110112
gn_args['skia_enable_icu_ubrk_safeclone'] = True

0 commit comments

Comments
 (0)