From: Cheng Zhao Date: Sat, 15 Mar 2014 11:28:23 +0000 (+0800) Subject: Add 'accept-first-mouse' in window's option. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b1bb4d911fcd9f9ad40dadc47f8dba63af079dd1;p=platform%2Fframework%2Fweb%2Fcrosswalk-tizen.git Add 'accept-first-mouse' in window's option. --- diff --git a/browser/native_window_mac.mm b/browser/native_window_mac.mm index 1dca1c6f7..9ef68f42c 100644 --- a/browser/native_window_mac.mm +++ b/browser/native_window_mac.mm @@ -29,18 +29,26 @@ static const CGFloat kAtomWindowCornerRadius = 4.0; @interface AtomNSWindowDelegate : NSObject { @private atom::NativeWindowMac* shell_; + BOOL acceptsFirstMouse_; } - (id)initWithShell:(atom::NativeWindowMac*)shell; +- (void)setAcceptsFirstMouse:(BOOL)accept; @end @implementation AtomNSWindowDelegate - (id)initWithShell:(atom::NativeWindowMac*)shell { - if ((self = [super init])) + if ((self = [super init])) { shell_ = shell; + acceptsFirstMouse_ = NO; + } return self; } +- (void)setAcceptsFirstMouse:(BOOL)accept { + acceptsFirstMouse_ = accept; +} + - (void)windowDidResignMain:(NSNotification*)notification { shell_->NotifyWindowBlur(); } @@ -50,6 +58,13 @@ static const CGFloat kAtomWindowCornerRadius = 4.0; shell_->ClipWebView(); } +- (void)windowDidExitFullScreen:(NSNotification*)notification { + if (!shell_->has_frame()) { + NSWindow* window = shell_->GetNativeWindow(); + [[window standardWindowButton:NSWindowFullScreenButton] setHidden:YES]; + } +} + - (void)windowWillClose:(NSNotification*)notification { shell_->window() = nil; [self autorelease]; @@ -63,11 +78,8 @@ static const CGFloat kAtomWindowCornerRadius = 4.0; return NO; } -- (void)windowDidExitFullScreen:(NSNotification*)notification { - if (!shell_->has_frame()) { - NSWindow* window = shell_->GetNativeWindow(); - [[window standardWindowButton:NSWindowFullScreenButton] setHidden:YES]; - } +- (BOOL)acceptsFirstMouse:(NSEvent*)event { + return acceptsFirstMouse_; } @end @@ -77,7 +89,6 @@ static const CGFloat kAtomWindowCornerRadius = 4.0; atom::NativeWindowMac* shell_; } - (void)setShell:(atom::NativeWindowMac*)shell; -- (IBAction)showDevTools:(id)sender; @end @implementation AtomNSWindow @@ -162,7 +173,14 @@ NativeWindowMac::NativeWindowMac(content::WebContents* web_contents, [atomWindow setShell:this]; window_ = atomWindow; - [window() setDelegate:[[AtomNSWindowDelegate alloc] initWithShell:this]]; + AtomNSWindowDelegate* delegate = + [[AtomNSWindowDelegate alloc] initWithShell:this]; + [window() setDelegate:delegate]; + + // Enable the NSView to accept first mouse event. + bool acceptsFirstMouse = false; + options->GetBoolean(switches::kAcceptFirstMouse, &acceptsFirstMouse); + [delegate setAcceptsFirstMouse:acceptsFirstMouse]; // Disable fullscreen button when 'fullscreen' is specified to false. bool fullscreen; diff --git a/common/options_switches.cc b/common/options_switches.cc index f3d849ef1..9e2934027 100644 --- a/common/options_switches.cc +++ b/common/options_switches.cc @@ -33,6 +33,9 @@ const char kAlwaysOnTop[] = "always-on-top"; const char kNodeIntegration[] = "node-integration"; +// Enable the NSView to accept first mouse event. +const char kAcceptFirstMouse[] = "accept-first-mouse"; + } // namespace switches } // namespace atom diff --git a/common/options_switches.h b/common/options_switches.h index ad6b68b2e..b46f46821 100644 --- a/common/options_switches.h +++ b/common/options_switches.h @@ -27,6 +27,7 @@ extern const char kFullscreen[]; extern const char kKiosk[]; extern const char kAlwaysOnTop[]; extern const char kNodeIntegration[]; +extern const char kAcceptFirstMouse[]; } // namespace switches