// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "sky/shell/mac/sky_application.h" #include "base/auto_reset.h" #include "base/logging.h" @implementation SkyApplication { BOOL handlingSendEvent_; } + (void)initialize { if (self == [SkyApplication class]) { NSApplication* app = [SkyApplication sharedApplication]; DCHECK([app conformsToProtocol:@protocol(CrAppControlProtocol)]) << "Existing NSApp (class " << [[app className] UTF8String] << ") does not conform to required protocol."; DCHECK(base::MessagePumpMac::UsingCrApp()) << "MessagePumpMac::Create() was called before " << "+[SkyApplication initialize]"; } } - (void)sendEvent:(NSEvent*)event { base::AutoReset scoper(&handlingSendEvent_, YES); [super sendEvent:event]; } - (void)setHandlingSendEvent:(BOOL)handlingSendEvent { handlingSendEvent_ = handlingSendEvent; } - (BOOL)isHandlingSendEvent { return handlingSendEvent_; } @end