electron/patches/chromium/render_widget_host_view_mac.patch

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

88 lines
3.3 KiB
Diff
Raw Normal View History

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2018-09-21 00:30:26 +00:00
From: Cheng Zhao <zcbenz@gmail.com>
Date: Thu, 20 Sep 2018 17:46:28 -0700
Subject: render_widget_host_view_mac.patch
2019-12-13 17:18:45 +00:00
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.
2018-09-21 00:30:26 +00:00
2019-05-13 18:49:01 +00:00
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
chore: bump chromium to 115.0.5760.0 (main) (#38033) * chore: bump chromium in DEPS to 114.0.5721.0 * chore: update patches * chore: bump chromium in DEPS to 114.0.5723.0 * chore: update patches * chore: bump chromium in DEPS to 114.0.5725.0 * chore: update patches * chore: bump chromium in DEPS to 114.0.5727.0 * chore: bump chromium in DEPS to 114.0.5729.0 * chore: bump chromium in DEPS to 114.0.5731.0 * chore: update patches * 4450570: Clean up content shell https://chromium-review.googlesource.com/c/chromium/src/+/4450570 * 4262527: geolocation: Introduce mojom::GeopositionResult https://chromium-review.googlesource.com/c/chromium/src/+/4262527 * 4450327: Android/Nav: Stop taking content timeout timer from old host. https://chromium-review.googlesource.com/c/chromium/src/+/4450327 Also, see: 4451366: Reland "Prerender: Fix prerender new content timeout start timing" https://chromium-review.googlesource.com/c/chromium/src/+/4451366 * chore: bump chromium in DEPS to 114.0.5733.2 * chore: update patches * chore: bump CircleCI xcode version this will hopefully get us the necessary macOS sdk 13.3 on CI. * chore: bump chromium in DEPS to 114.0.5735.0 * chore: update patches * test: fix geolocation test * chore: bump chromium in DEPS to 115.0.5736.0 * chore: update patches * chore: bump chromium in DEPS to 115.0.5738.0 * chore: update patches * fix: remove profiles from spellcheck service * chore: update libc++ filenames * chore: bump chromium in DEPS to 115.0.5740.0 * chore: update patches * chore: bump chromium in DEPS to 115.0.5742.0 * chore: update patches * chore: bump chromium in DEPS to 115.0.5744.0 * chore: update patches * chore: bump chromium in DEPS to 115.0.5746.0 * chore: update patches * chore: update filenames.libcxx.gni * chore: bump chromium in DEPS to 115.0.5748.0 * chore: update patches * build: update libcxx filenames * chore: bump chromium in DEPS to 115.0.5750.0 * chore: bump chromium in DEPS to 115.0.5752.2 * chore: bump chromium in DEPS to 115.0.5754.0 * chore: bump chromium in DEPS to 115.0.5756.0 * chore: bump chromium in DEPS to 115.0.5758.0 * chore: update patches * chore: update patch after rebase * 4500969: Delete content/dev_ui_content_resources.grd file. https://chromium-review.googlesource.com/c/chromium/src/+/4500969 * Use base.Value.Dict in OmahaAttributesHandler related code https://chromium-review.googlesource.com/c/chromium/src/+/4506402 * chore: bump chromium in DEPS to 115.0.5760.0 * chore: update patches * chore: fixup line endings * 4336172: Include client-drawn window decorations in aspect ratio. | Ref: https://chromium-review.googlesource.com/c/chromium/src/+/4336172 (cherry picked from commit 27c2f6c43e8e4a792b33fdf8cf3af880376406be) * spec: fix race condition in alwaysOnTop test (cherry picked from commit 2ec5213fa0998d9cf21248257e7b5a5581044ea3) * build: use xcode 14.2 not 14.3 (cherry picked from commit b7c62351a77102e854a801c363f391b177ebf672) * build: use macOS 12 to run tests The new macOS 13 VMs appear to have different screen / display behavior (cherry picked from commit 14dc1dbc24cec85111a7482b49049f6acbfbc5f1) * Remove always-true flag --harmony-sharedarraybuffer https://chromium-review.googlesource.com/c/v8/v8/+/4429630 --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com> Co-authored-by: clavin <clavin@electronjs.org> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> Co-authored-by: Keeley Hammond <vertedinde@electronjs.org> Co-authored-by: VerteDinde <keeleymhammond@gmail.com> Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2023-05-10 14:47:48 +00:00
index 311d9c2c7cf8fbe70861a67d43a6f82d430f98b2..179c909acfc0c0aef1c778aa2249bd758032c077 100644
2019-05-13 18:49:01 +00:00
--- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
+++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
@@ -155,6 +155,15 @@ void ExtractUnderlines(NSAttributedString* string,
} // namespace
+@interface NSWindow (AtomCustomMethods)
+- (BOOL)acceptsFirstMouse;
+- (BOOL)disableAutoHideCursor;
+@end
+
+@interface NSView (ElectronCustomMethods)
+- (BOOL)shouldIgnoreMouseEvent;
+@end
+
// RenderWidgetHostViewCocoa ---------------------------------------------------
// Private methods:
@@ -594,6 +603,9 @@ - (BOOL)acceptsMouseEventsWhenInactive {
}
- (BOOL)acceptsFirstMouse:(NSEvent*)theEvent {
+ if ([self.window respondsToSelector:@selector(acceptsFirstMouse)] &&
+ [self.window acceptsFirstMouse])
+ return YES;
return [self acceptsMouseEventsWhenInactive];
}
@@ -670,6 +682,10 @@ - (BOOL)shouldIgnoreMouseEvent:(NSEvent*)theEvent {
// its parent view.
BOOL hitSelf = NO;
while (view) {
+ if ([view respondsToSelector:@selector(shouldIgnoreMouseEvent)] && ![view shouldIgnoreMouseEvent]) {
+ return NO;
+ }
+
if (view == self)
hitSelf = YES;
if ([view isKindOfClass:[self class]] && ![view isEqual:self] &&
@@ -989,6 +1005,10 @@ - (void)keyEvent:(NSEvent*)theEvent wasKeyEquivalent:(BOOL)equiv {
eventType == NSEventTypeKeyDown &&
!(modifierFlags & NSEventModifierFlagCommand);
+ 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 != NSEventTypeKeyDown) {
_hostHelper->ForwardKeyboardEvent(event, latency_info);
@@ -1801,9 +1821,11 @@ - (NSAccessibilityRole)accessibilityRole {
// Since this implementation doesn't have to wait any IPC calls, this doesn't
// make any key-typing jank. --hbono 7/23/09
//
+#if !IS_MAS_BUILD()
extern "C" {
extern NSString* NSTextInputReplacementRangeAttributeName;
}
+#endif
- (NSArray*)validAttributesForMarkedText {
// This code is just copied from WebKit except renaming variables.
@@ -1812,7 +1834,10 @@ - (NSArray*)validAttributesForMarkedText {
initWithObjects:NSUnderlineStyleAttributeName,
NSUnderlineColorAttributeName,
NSMarkedClauseSegmentAttributeName,
- NSTextInputReplacementRangeAttributeName, nil]);
+#if !IS_MAS_BUILD()
+ NSTextInputReplacementRangeAttributeName,
+#endif
+ nil]);
}
return _validAttributesForMarkedText.get();
}