From 315414ec2634376a1a69f7b98b1c5eab6cba1894 Mon Sep 17 00:00:00 2001 From: Marshall Greenblatt Date: Mon, 11 Jun 2012 20:41:55 +0000 Subject: [PATCH] Mac: Avoid re-entering OnSetFocus in becomeFirstResponder (issue #508). git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@692 5089003a-bbd8-11dd-ad1f-f1f9622dbc98 --- libcef/browser/browser_host_impl_mac.mm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/libcef/browser/browser_host_impl_mac.mm b/libcef/browser/browser_host_impl_mac.mm index 7070d6cbc..347482aee 100644 --- a/libcef/browser/browser_host_impl_mac.mm +++ b/libcef/browser/browser_host_impl_mac.mm @@ -26,6 +26,7 @@ @interface CefBrowserHostView : NSView { @private CefBrowserHostImpl* browser_; // weak + bool is_in_onsetfocus_; } @property (nonatomic, assign) CefBrowserHostImpl* browser; @@ -50,8 +51,14 @@ } - (BOOL)becomeFirstResponder { - if (browser_ && browser_->GetWebContents()) - browser_->OnSetFocus(FOCUS_SOURCE_SYSTEM); + if (browser_ && browser_->GetWebContents()) { + // Avoid re-entering OnSetFocus. + if (!is_in_onsetfocus_) { + is_in_onsetfocus_ = true; + browser_->OnSetFocus(FOCUS_SOURCE_SYSTEM); + is_in_onsetfocus_ = false; + } + } return YES; }