electron/patches/chromium/render_widget_host_view_mac.patch
Electron Bot 37db307153
chore: bump chromium to 4563763ef26ad940d4e988d7245dd (master) (#23219)
* chore: bump chromium in DEPS to 461ecae368fd0832f18e0b13e61f3561d83f0031

* update patches

* update patches

* Remove both vs browser/child split in content gn files.

https://chromium-review.googlesource.com/c/chromium/src/+/2157965

* chore: bump chromium in DEPS to 7ff3897f3104563763ef26ad940d4e988d7245dd

* update patches

* update patches

* Add ElectronKioskDelegate for extensions

https://chromium-review.googlesource.com/c/chromium/src/+/2159760

Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-04-23 21:55:17 -04:00

72 lines
2.9 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Cheng Zhao <zcbenz@gmail.com>
Date: Thu, 20 Sep 2018 17:46:28 -0700
Subject: render_widget_host_view_mac.patch
This allows Electron to override `acceptsFirstMouse` on Mac so that windows can
respond to the first mouse click in their window, which is desirable for some
kinds of utility windows. Similarly for `disableAutoHideCursor`.
Additionally, disables usage of some private APIs in MAS builds.
diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
index 9461c206fe9e7062d5b3f0af26d3afb7320aa7aa..4b3d0f92e0dfffda8e86e8eab0539425da2fbbad 100644
--- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
+++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
@@ -154,6 +154,11 @@ void ExtractUnderlines(NSAttributedString* string,
} // namespace
+@interface NSWindow (AtomCustomMethods)
+- (BOOL)acceptsFirstMouse;
+- (BOOL)disableAutoHideCursor;
+@end
+
// These are not documented, so use only after checking -respondsToSelector:.
@interface NSApplication (UndocumentedSpeechMethods)
- (void)speakString:(NSString*)string;
@@ -573,6 +578,9 @@ void ExtractUnderlines(NSAttributedString* string,
}
- (BOOL)acceptsFirstMouse:(NSEvent*)theEvent {
+ if ([self.window respondsToSelector:@selector(acceptsFirstMouse)] &&
+ [self.window acceptsFirstMouse])
+ return YES;
return [self acceptsMouseEventsWhenInactive];
}
@@ -983,6 +991,10 @@ void ExtractUnderlines(NSAttributedString* string,
eventType == NSKeyDown &&
!(modifierFlags & NSCommandKeyMask);
+ if ([theEvent.window respondsToSelector:@selector(disableAutoHideCursor)] &&
+ [theEvent.window disableAutoHideCursor])
+ shouldAutohideCursor = NO;
+
// We only handle key down events and just simply forward other events.
if (eventType != NSKeyDown) {
_hostHelper->ForwardKeyboardEvent(event, latency_info);
@@ -1759,9 +1771,11 @@ void ExtractUnderlines(NSAttributedString* string,
// Since this implementation doesn't have to wait any IPC calls, this doesn't
// make any key-typing jank. --hbono 7/23/09
//
+#ifndef MAS_BUILD
extern "C" {
extern NSString* NSTextInputReplacementRangeAttributeName;
}
+#endif
- (NSArray*)validAttributesForMarkedText {
// This code is just copied from WebKit except renaming variables.
@@ -1770,7 +1784,10 @@ extern NSString* NSTextInputReplacementRangeAttributeName;
initWithObjects:NSUnderlineStyleAttributeName,
NSUnderlineColorAttributeName,
NSMarkedClauseSegmentAttributeName,
- NSTextInputReplacementRangeAttributeName, nil]);
+#ifndef MAS_BUILD
+ NSTextInputReplacementRangeAttributeName,
+#endif
+ nil]);
}
return _validAttributesForMarkedText.get();
}