forked from flutter/flutter
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Enable delayed event delivery for macOS (flutter#21231)
This enables delayed event delivery for macOS, so that shortcuts can handle keys that are headed for a text field and intercept them. This fixes the problem where pressing TAB (or other shortcuts) in a text field also inserts a tab character into the text field.
- Loading branch information
1 parent
4679f7b
commit 21691f1
Showing
10 changed files
with
348 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
28 changes: 28 additions & 0 deletions
28
shell/platform/darwin/macos/framework/Source/FlutterIntermediateKeyResponder.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
// Copyright 2013 The Flutter Authors. All rights reserved. | ||
// Use of this source code is governed by a BSD-style license that can be | ||
// found in the LICENSE file. | ||
|
||
#import <Cocoa/Cocoa.h> | ||
|
||
/* | ||
* An interface for a key responder that can declare itself as the final | ||
* responder of the event, terminating the event propagation. | ||
* | ||
* It differs from an NSResponder in that it returns a boolean from the | ||
* handleKeyUp and handleKeyDown calls, where true means it has handled the | ||
* given event. | ||
*/ | ||
@interface FlutterIntermediateKeyResponder : NSObject | ||
/* | ||
* Informs the receiver that the user has released a key. | ||
* | ||
* Default implementation returns NO. | ||
*/ | ||
- (BOOL)handleKeyUp:(nonnull NSEvent*)event; | ||
/* | ||
* Informs the receiver that the user has pressed a key. | ||
* | ||
* Default implementation returns NO. | ||
*/ | ||
- (BOOL)handleKeyDown:(nonnull NSEvent*)event; | ||
@end |
19 changes: 19 additions & 0 deletions
19
shell/platform/darwin/macos/framework/Source/FlutterIntermediateKeyResponder.mm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
// Copyright 2013 The Flutter Authors. All rights reserved. | ||
// Use of this source code is governed by a BSD-style license that can be | ||
// found in the LICENSE file. | ||
|
||
#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterIntermediateKeyResponder.h" | ||
|
||
@implementation FlutterIntermediateKeyResponder { | ||
} | ||
|
||
#pragma mark - Default key handling methods | ||
|
||
- (BOOL)handleKeyUp:(NSEvent*)event { | ||
return NO; | ||
} | ||
|
||
- (BOOL)handleKeyDown:(NSEvent*)event { | ||
return NO; | ||
} | ||
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.