Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
32d78ab4
Unverified
Commit
32d78ab4
authored
Dec 01, 2021
by
Tong Mu
Committed by
GitHub
Dec 01, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Windows, Keyboard] Fix logical key for PrintScreen (#94454)
parent
418cd956
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
39 additions
and
132 deletions
+39
-132
keyboard_key.tmpl
dev/tools/gen_keycodes/data/keyboard_key.tmpl
+9
-131
logical_key_data.json
dev/tools/gen_keycodes/data/logical_key_data.json
+6
-0
physical_key_data.json
dev/tools/gen_keycodes/data/physical_key_data.json
+11
-0
windows_logical_to_window_vk.json
...tools/gen_keycodes/data/windows_logical_to_window_vk.json
+1
-1
keyboard_key.dart
packages/flutter/lib/src/services/keyboard_key.dart
+8
-0
keyboard_maps.dart
packages/flutter/lib/src/services/keyboard_maps.dart
+4
-0
No files found.
dev/tools/gen_keycodes/data/keyboard_key.tmpl
View file @
32d78ab4
...
...
@@ -46,75 +46,11 @@ abstract class KeyboardKey with Diagnosticable {
/// look at the physical key to make sure that regardless of the character the
/// key produces, you got the key that is in that location on the keyboard.
///
/// {@tool dartpad
--template=stateful_widget_scaffold
}
/// {@tool dartpad}
/// This example shows how to detect if the user has selected the logical "Q"
/// key.
///
/// ```dart imports
/// import 'package:flutter/foundation.dart';
/// import 'package:flutter/services.dart';
/// ```
///
/// ```dart
/// // The node used to request the keyboard focus.
/// final FocusNode _focusNode = FocusNode();
/// // The message to display.
/// String? _message;
///
/// // Focus nodes need to be disposed.
/// @override
/// void dispose() {
/// _focusNode.dispose();
/// super.dispose();
/// }
///
/// // Handles the key events from the RawKeyboardListener and update the
/// // _message.
/// void _handleKeyEvent(RawKeyEvent event) {
/// setState(() {
/// if (event.logicalKey == LogicalKeyboardKey.keyQ) {
/// _message = 'Pressed the "Q" key!';
/// } else {
/// if (kReleaseMode) {
/// _message = 'Not a Q: Pressed 0x${event.logicalKey.keyId.toRadixString(16)}';
/// } else {
/// // The debugName will only print useful information in debug mode.
/// _message = 'Not a Q: Pressed ${event.logicalKey.debugName}';
/// }
/// }
/// });
/// }
///
/// @override
/// Widget build(BuildContext context) {
/// final TextTheme textTheme = Theme.of(context).textTheme;
/// return Container(
/// color: Colors.white,
/// alignment: Alignment.center,
/// child: DefaultTextStyle(
/// style: textTheme.headline4!,
/// child: RawKeyboardListener(
/// focusNode: _focusNode,
/// onKey: _handleKeyEvent,
/// child: AnimatedBuilder(
/// animation: _focusNode,
/// builder: (BuildContext context, Widget? child) {
/// if (!_focusNode.hasFocus) {
/// return GestureDetector(
/// onTap: () {
/// FocusScope.of(context).requestFocus(_focusNode);
/// },
/// child: const Text('Tap to focus'),
/// );
/// }
/// return Text(_message ?? 'Press a key');
/// },
/// ),
/// ),
/// ),
/// );
/// }
/// ```
/// ** See code in examples/api/lib/services/keyboard_key/logical_keyboard_key.0.dart **
/// {@end-tool}
/// See also:
///
...
...
@@ -318,9 +254,9 @@ class LogicalKeyboardKey extends KeyboardKey {
@override
void debugFillProperties(DiagnosticPropertiesBuilder properties) {
super.debugFillProperties(properties);
properties.add(StringProperty('keyId', '0x${keyId.toRadixString(16).padLeft(8, '0')}'
, showName: true
));
properties.add(StringProperty('keyLabel', keyLabel
, showName: true
));
properties.add(StringProperty('debugName', debugName,
showName: true,
defaultValue: null));
properties.add(StringProperty('keyId', '0x${keyId.toRadixString(16).padLeft(8, '0')}'));
properties.add(StringProperty('keyLabel', keyLabel));
properties.add(StringProperty('debugName', debugName, defaultValue: null));
}
@@@MASK_CONSTANTS@@@
...
...
@@ -365,69 +301,11 @@ class LogicalKeyboardKey extends KeyboardKey {
/// looking for "the key next to the TAB key", since on a French keyboard,
/// the key next to the TAB key has an "A" on it.
///
/// {@tool dartpad
--template=stateful_widget_scaffold
}
/// {@tool dartpad}
/// This example shows how to detect if the user has selected the physical key
/// to the right of the CAPS LOCK key.
///
/// ```dart imports
/// import 'package:flutter/services.dart';
/// ```
///
/// ```dart
/// // The node used to request the keyboard focus.
/// final FocusNode _focusNode = FocusNode();
/// // The message to display.
/// String? _message;
///
/// // Focus nodes need to be disposed.
/// @override
/// void dispose() {
/// _focusNode.dispose();
/// super.dispose();
/// }
///
/// // Handles the key events from the RawKeyboardListener and update the
/// // _message.
/// void _handleKeyEvent(RawKeyEvent event) {
/// setState(() {
/// if (event.physicalKey == PhysicalKeyboardKey.keyA) {
/// _message = 'Pressed the key next to CAPS LOCK!';
/// } else {
/// _message = 'Wrong key.';
/// }
/// });
/// }
///
/// @override
/// Widget build(BuildContext context) {
/// final TextTheme textTheme = Theme.of(context).textTheme;
/// return Container(
/// color: Colors.white,
/// alignment: Alignment.center,
/// child: DefaultTextStyle(
/// style: textTheme.headline4!,
/// child: RawKeyboardListener(
/// focusNode: _focusNode,
/// onKey: _handleKeyEvent,
/// child: AnimatedBuilder(
/// animation: _focusNode,
/// builder: (BuildContext context, Widget? child) {
/// if (!_focusNode.hasFocus) {
/// return GestureDetector(
/// onTap: () {
/// FocusScope.of(context).requestFocus(_focusNode);
/// },
/// child: const Text('Tap to focus'),
/// );
/// }
/// return Text(_message ?? 'Press a key');
/// },
/// ),
/// ),
/// ),
/// );
/// }
/// ```
/// ** See code in examples/api/lib/services/keyboard_key/physical_keyboard_key.0.dart **
/// {@end-tool}
///
/// See also:
...
...
@@ -483,8 +361,8 @@ class PhysicalKeyboardKey extends KeyboardKey {
@override
void debugFillProperties(DiagnosticPropertiesBuilder properties) {
super.debugFillProperties(properties);
properties.add(StringProperty('usbHidUsage', '0x${usbHidUsage.toRadixString(16).padLeft(8, '0')}'
, showName: true
));
properties.add(StringProperty('debugName', debugName,
showName: true,
defaultValue: null));
properties.add(StringProperty('usbHidUsage', '0x${usbHidUsage.toRadixString(16).padLeft(8, '0')}'));
properties.add(StringProperty('debugName', debugName, defaultValue: null));
}
// Key constants for all keyboard keys in the USB HID specification at the
...
...
dev/tools/gen_keycodes/data/logical_key_data.json
View file @
32d78ab4
...
...
@@ -3075,6 +3075,9 @@
"gtk"
:
[
"3270_PrintScreen"
],
"windows"
:
[
"SNAPSHOT"
],
"android"
:
[
"SYSRQ"
],
...
...
@@ -3086,6 +3089,9 @@
"gtk"
:
[
64797
],
"windows"
:
[
44
],
"android"
:
[
120
],
...
...
dev/tools/gen_keycodes/data/physical_key_data.json
View file @
32d78ab4
...
...
@@ -80,6 +80,17 @@
"xkb"
:
641
}
},
"MicrophoneMuteToggle"
:
{
"names"
:
{
"name"
:
"MicrophoneMuteToggle"
,
"chromium"
:
"MicrophoneMuteToggle"
},
"scanCodes"
:
{
"usb"
:
24
,
"linux"
:
248
,
"xkb"
:
256
}
},
"Sleep"
:
{
"names"
:
{
"name"
:
"Sleep"
,
...
...
dev/tools/gen_keycodes/data/windows_logical_to_window_vk.json
View file @
32d78ab4
...
...
@@ -27,7 +27,6 @@
"Select"
:
[
"SELECT"
],
"Print"
:
[
"PRINT"
],
"Execute"
:
[
"EXECUTE"
],
"Snapshot"
:
[
"SNAPSHOT"
],
"Insert"
:
[
"INSERT"
],
"Delete"
:
[
"DELETE"
],
"Help"
:
[
"HELP"
],
...
...
@@ -36,6 +35,7 @@
"ContextMenu"
:
[
"APPS"
],
"PageDown"
:
[
"NEXT"
],
"PageUp"
:
[
"PRIOR"
],
"PrintScreen"
:
[
"SNAPSHOT"
],
"Numpad0"
:
[
"NUMPAD0"
],
"Numpad1"
:
[
"NUMPAD1"
],
"Numpad2"
:
[
"NUMPAD2"
],
...
...
packages/flutter/lib/src/services/keyboard_key.dart
View file @
32d78ab4
...
...
@@ -3600,6 +3600,12 @@ class PhysicalKeyboardKey extends KeyboardKey {
/// See the function [RawKeyEvent.physicalKey] for more information.
static
const
PhysicalKeyboardKey
privacyScreenToggle
=
PhysicalKeyboardKey
(
0x00000017
);
/// Represents the location of the "Microphone Mute Toggle" key on a
/// generalized keyboard.
///
/// See the function [RawKeyEvent.physicalKey] for more information.
static
const
PhysicalKeyboardKey
microphoneMuteToggle
=
PhysicalKeyboardKey
(
0x00000018
);
/// Represents the location of the "Sleep" key on a generalized keyboard.
///
/// See the function [RawKeyEvent.physicalKey] for more information.
...
...
@@ -5031,6 +5037,7 @@ class PhysicalKeyboardKey extends KeyboardKey {
0x00000015
:
resume
,
0x00000016
:
turbo
,
0x00000017
:
privacyScreenToggle
,
0x00000018
:
microphoneMuteToggle
,
0x00010082
:
sleep
,
0x00010083
:
wakeUp
,
0x000100b5
:
displayToggleIntExt
,
...
...
@@ -5304,6 +5311,7 @@ class PhysicalKeyboardKey extends KeyboardKey {
0x00000015
:
'Resume'
,
0x00000016
:
'Turbo'
,
0x00000017
:
'Privacy Screen Toggle'
,
0x00000018
:
'Microphone Mute Toggle'
,
0x00010082
:
'Sleep'
,
0x00010083
:
'Wake Up'
,
0x000100b5
:
'Display Toggle Int Ext'
,
...
...
packages/flutter/lib/src/services/keyboard_maps.dart
View file @
32d78ab4
...
...
@@ -784,6 +784,7 @@ const Map<int, PhysicalKeyboardKey> kFuchsiaToPhysicalKey = <int, PhysicalKeyboa
0x00000015
:
PhysicalKeyboardKey
.
resume
,
0x00000016
:
PhysicalKeyboardKey
.
turbo
,
0x00000017
:
PhysicalKeyboardKey
.
privacyScreenToggle
,
0x00000018
:
PhysicalKeyboardKey
.
microphoneMuteToggle
,
0x00010082
:
PhysicalKeyboardKey
.
sleep
,
0x00010083
:
PhysicalKeyboardKey
.
wakeUp
,
0x000100b5
:
PhysicalKeyboardKey
.
displayToggleIntExt
,
...
...
@@ -2108,6 +2109,7 @@ const Map<int, PhysicalKeyboardKey> kLinuxToPhysicalKey = <int, PhysicalKeyboard
0x000000f2
:
PhysicalKeyboardKey
.
save
,
0x000000f3
:
PhysicalKeyboardKey
.
launchDocuments
,
0x000000fc
:
PhysicalKeyboardKey
.
brightnessAuto
,
0x00000100
:
PhysicalKeyboardKey
.
microphoneMuteToggle
,
0x0000016e
:
PhysicalKeyboardKey
.
info
,
0x00000172
:
PhysicalKeyboardKey
.
programGuide
,
0x0000017a
:
PhysicalKeyboardKey
.
closedCaptionToggle
,
...
...
@@ -2637,6 +2639,7 @@ const Map<String, PhysicalKeyboardKey> kWebToPhysicalKey = <String, PhysicalKeyb
'MediaTrackPrevious'
:
PhysicalKeyboardKey
.
mediaTrackPrevious
,
'MetaLeft'
:
PhysicalKeyboardKey
.
metaLeft
,
'MetaRight'
:
PhysicalKeyboardKey
.
metaRight
,
'MicrophoneMuteToggle'
:
PhysicalKeyboardKey
.
microphoneMuteToggle
,
'Minus'
:
PhysicalKeyboardKey
.
minus
,
'New'
:
PhysicalKeyboardKey
.
newKey
,
'NonConvert'
:
PhysicalKeyboardKey
.
nonConvert
,
...
...
@@ -2806,6 +2809,7 @@ const Map<int, LogicalKeyboardKey> kWindowsToLogicalKey = <int, LogicalKeyboardK
41
:
LogicalKeyboardKey
.
select
,
42
:
LogicalKeyboardKey
.
print
,
43
:
LogicalKeyboardKey
.
execute
,
44
:
LogicalKeyboardKey
.
printScreen
,
45
:
LogicalKeyboardKey
.
insert
,
46
:
LogicalKeyboardKey
.
delete
,
47
:
LogicalKeyboardKey
.
help
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment