bbdd037219
* chore: bump chromium in DEPS to 117.0.5892.0 * 4670267: Don't send javascript: or empty URLs to browser in CreateNewWindow. https://chromium-review.googlesource.com/c/chromium/src/+/4670267 * 4662090: Add metrics for WebGPU support https://chromium-review.googlesource.com/c/chromium/src/+/4662090 * 4672599: Use set_defaults for mac_app_bundle https://chromium-review.googlesource.com/c/chromium/src/+/4672599 * 4663771: usb: Add connection count tracking methods for UsbDelegate https://chromium-review.googlesource.com/c/chromium/src/+/4663771 * 4664578: Remove unused parameter from ExtensionsGuestViewManagerDelegate ctor https://chromium-review.googlesource.com/c/chromium/src/+/4664578 * 4622253: usb: Create classes for usb system tray icon https://chromium-review.googlesource.com/c/chromium/src/+/4622253 * 4678263: Remove ARC support from scoped_nsobject https://chromium-review.googlesource.com/c/chromium/src/+/4678263 * chore: follow-up ARC changes and missing guard corrections * chore: don't mark 0-param ctor explicit Follow up to https://chromium-review.googlesource.com/c/chromium/src/+/4664578 * chore: fixup patch indices * 4670865: Merge ObjectProxy::CallMethodAndBlock{,WithErrorDetails}. https://chromium-review.googlesource.com/c/chromium/src/+/4670865 * chore: follow-up ARC changes and missing guard corrections * fixup: retain ElectronApplicationDelegate * fix: correct rustc binary --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
44 lines
1.6 KiB
Text
44 lines
1.6 KiB
Text
// Copyright (c) 2018 GitHub, Inc.
|
|
// Use of this source code is governed by the MIT license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#include "shell/browser/ui/cocoa/delayed_native_view_host.h"
|
|
#include "base/apple/owned_objc.h"
|
|
#include "shell/browser/ui/cocoa/electron_inspectable_web_contents_view.h"
|
|
|
|
#if !defined(__has_feature) || !__has_feature(objc_arc)
|
|
#error "This file requires ARC support."
|
|
#endif
|
|
|
|
namespace electron {
|
|
|
|
DelayedNativeViewHost::DelayedNativeViewHost(gfx::NativeView native_view)
|
|
: native_view_(native_view) {}
|
|
|
|
DelayedNativeViewHost::~DelayedNativeViewHost() = default;
|
|
|
|
void DelayedNativeViewHost::ViewHierarchyChanged(
|
|
const views::ViewHierarchyChangedDetails& details) {
|
|
NativeViewHost::ViewHierarchyChanged(details);
|
|
if (details.is_add && GetWidget())
|
|
Attach(native_view_);
|
|
}
|
|
|
|
bool DelayedNativeViewHost::OnMousePressed(const ui::MouseEvent& ui_event) {
|
|
// NativeViewHost::OnMousePressed normally isn't called, but
|
|
// NativeWidgetMacNSWindow specifically carves out an event here for
|
|
// right-mouse-button clicks. We want to forward them to the web content, so
|
|
// handle them here.
|
|
// See:
|
|
// https://source.chromium.org/chromium/chromium/src/+/main:components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm;l=415-421;drc=a5af91924bafb85426e091c6035801990a6dc697
|
|
|
|
ElectronInspectableWebContentsView* inspectable_web_contents_view =
|
|
(ElectronInspectableWebContentsView*)native_view_.GetNativeNSView();
|
|
[inspectable_web_contents_view
|
|
redispatchContextMenuEvent:base::apple::OwnedNSEvent(
|
|
ui_event.native_event())];
|
|
|
|
return true;
|
|
}
|
|
|
|
} // namespace electron
|