76c5f5cc8a
In the GN build, libchromiumcontent is no longer a distinct library, but merely a container for a set of scripts and patches. Maintaining those patches in a separate repository is tedious and error-prone, so merge them into the main repo. Once this is merged and GN is the default way to build Electron, the libchromiumcontent repository can be archived.
102 lines
4.2 KiB
Diff
102 lines
4.2 KiB
Diff
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
|
|
index 6a161f0f36c6..349bc78976ad 100644
|
|
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
|
|
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
|
|
@@ -48,6 +48,7 @@
|
|
#include "ui/gfx/geometry/dip_util.h"
|
|
#include "ui/gfx/mac/coordinate_conversion.h"
|
|
#include "ui/gl/gl_switches.h"
|
|
+#include "ui/gl/gpu_switching_manager.h"
|
|
|
|
using blink::WebInputEvent;
|
|
using blink::WebMouseEvent;
|
|
@@ -1112,6 +1113,12 @@ void RenderWidgetHostViewMac::SetBackgroundColor(SkColor color) {
|
|
DCHECK(SkColorGetA(color) == SK_AlphaOPAQUE ||
|
|
SkColorGetA(color) == SK_AlphaTRANSPARENT);
|
|
bool opaque = SkColorGetA(color) == SK_AlphaOPAQUE;
|
|
+ if (opaque) {
|
|
+ bool wantsTransparent = ui::GpuSwitchingManager::UseTransparent() ||
|
|
+ ([cocoa_view() window] && ![[cocoa_view() window] isOpaque]);
|
|
+ if (wantsTransparent)
|
|
+ opaque = NO;
|
|
+ }
|
|
if (background_is_opaque_ != opaque) {
|
|
background_is_opaque_ = opaque;
|
|
if (host())
|
|
diff --git a/content/browser/renderer_host/render_widget_host_view_cocoa.mm b/content/browser/renderer_host/render_widget_host_view_cocoa.mm
|
|
index c7ad6fa8c75f..bdfabc1061bb 100644
|
|
--- a/content/browser/renderer_host/render_widget_host_view_cocoa.mm
|
|
+++ b/content/browser/renderer_host/render_widget_host_view_cocoa.mm
|
|
@@ -178,6 +178,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;
|
|
@@ -355,6 +360,9 @@ void ExtractUnderlines(NSAttributedString* string,
|
|
}
|
|
|
|
- (BOOL)acceptsFirstMouse:(NSEvent*)theEvent {
|
|
+ if ([self.window respondsToSelector:@selector(acceptsFirstMouse)] &&
|
|
+ [self.window acceptsFirstMouse])
|
|
+ return YES;
|
|
return [self acceptsMouseEventsWhenInactive];
|
|
}
|
|
|
|
@@ -555,6 +563,7 @@ void ExtractUnderlines(NSAttributedString* string,
|
|
if (EventIsReservedBySystem(theEvent))
|
|
return NO;
|
|
|
|
+#if 0
|
|
// If we return |NO| from this function, cocoa will send the key event to
|
|
// the menu and only if the menu does not process the event to |keyDown:|. We
|
|
// want to send the event to a renderer _before_ sending it to the menu, so
|
|
@@ -568,6 +577,7 @@ void ExtractUnderlines(NSAttributedString* string,
|
|
DCHECK(![[NSApp mainMenu] performKeyEquivalent:theEvent]);
|
|
return NO;
|
|
}
|
|
+#endif
|
|
|
|
// Command key combinations are sent via performKeyEquivalent rather than
|
|
// keyDown:. We just forward this on and if WebCore doesn't want to handle
|
|
@@ -664,6 +674,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) {
|
|
client_->OnNSViewForwardKeyboardEvent(event, latency_info);
|
|
@@ -1425,9 +1439,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.
|
|
@@ -1436,7 +1452,10 @@ extern NSString* NSTextInputReplacementRangeAttributeName;
|
|
initWithObjects:NSUnderlineStyleAttributeName,
|
|
NSUnderlineColorAttributeName,
|
|
NSMarkedClauseSegmentAttributeName,
|
|
- NSTextInputReplacementRangeAttributeName, nil]);
|
|
+#ifndef MAS_BUILD
|
|
+ NSTextInputReplacementRangeAttributeName,
|
|
+#endif
|
|
+ nil]);
|
|
}
|
|
return validAttributesForMarkedText_.get();
|
|
}
|