Skip to content

Commit 9c8fab9

Browse files
committed
Added DefaultFocusHandler with SelectNextControl behaviour.
1 parent 1207e7b commit 9c8fab9

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

CefSharp.WinForms.Example/BrowserTabUserControl.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public BrowserTabUserControl(string url)
2424
Browser = browser;
2525

2626
browser.MenuHandler = new MenuHandler();
27-
browser.FocusHandler = new FocusHandler(browser, urlTextBox);
27+
//browser.FocusHandler = new FocusHandler(browser, urlTextBox);
2828
browser.NavStateChanged += OnBrowserNavStateChanged;
2929
browser.ConsoleMessage += OnBrowserConsoleMessage;
3030
browser.TitleChanged += OnBrowserTitleChanged;

CefSharp.WinForms/ChromiumWebBrowser.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ public ChromiumWebBrowser(string address)
5555
Address = address;
5656

5757
Dock = DockStyle.Fill;
58+
59+
FocusHandler = new DefaultFocusHandler(this);
5860
}
5961

6062
protected override void Dispose(bool disposing)
@@ -354,5 +356,31 @@ private void ResizeBrowser()
354356
managedCefBrowserAdapter.Resize(Width, Height);
355357
}
356358
}
359+
360+
#region DefaultFocusHandler
361+
private class DefaultFocusHandler : IFocusHandler
362+
{
363+
private ChromiumWebBrowser browser;
364+
365+
public DefaultFocusHandler(ChromiumWebBrowser browser)
366+
{
367+
this.browser = browser;
368+
}
369+
370+
public void OnGotFocus()
371+
{
372+
}
373+
374+
public bool OnSetFocus(CefFocusSource source)
375+
{
376+
return false;
377+
}
378+
379+
public void OnTakeFocus(bool next)
380+
{
381+
browser.BeginInvoke(new MethodInvoker(() => browser.SelectNextControl(browser, next, true, true, true)));
382+
}
383+
}
384+
#endregion
357385
}
358386
}

0 commit comments

Comments
 (0)